Titanic - Survival Prediction¶

The sinking of the Titanic is one of the most infamous shipwrecks in history.

On April 15, 1912, during her maiden voyage, the widely considered “unsinkable” RMS Titanic sank after colliding with an iceberg. Unfortunately, there weren’t enough lifeboats for everyone onboard, resulting in the death of 1502 out of 2224 passengers and crew.

While there was some element of luck involved in surviving, it seems some groups of people were more likely to survive than others.

The Challenge¶

Build a predictive model that answers the question: “what sorts of people were more likely to survive?” using passenger data (ie name, age, gender, socio-economic class, etc).

Data Dictionary¶

  • Survived - Survival (0 = No, 1 = Yes)
  • Pclass - Ticket class (1 = 1st, 2 = 2nd, 3 = 3rd)
  • Name - Name of passenger
  • Sex - Male or female
  • Age - Age of passenger
  • SibSp - # of siblings/spouses aboard the Titanic
  • Parch - # of parents/children aboard the TItanic
  • Ticket - Ticket number
  • Fare - Passenger Fare
  • Cabin - Cabin Number
  • Embarked - Port of Embarkation (C = Cherbourg, Q = Queenstown, S = Southampton)

Import Library & Dataset¶

In [10]:
# The other version of tensorflow does not work well with the codes taht I have used in this notebook, so make sure your libraries are the same as mine
!pip install keras==2.12.0
Requirement already satisfied: keras==2.12.0 in /usr/local/lib/python3.10/dist-packages (2.12.0)
In [11]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import seaborn as sns
import random

# Suppress warnings from displaying to console
import warnings
warnings.filterwarnings("ignore")

# Removes the limit for the number of displayed columns
pd.set_option("display.max_columns", None)

# Sets the limit for the number of displayed rows
pd.set_option("display.max_rows", 200)

# To build models for prediction
from sklearn.model_selection import train_test_split, cross_val_score, KFold
from sklearn.preprocessing import StandardScaler, MinMaxScaler
from sklearn.svm import SVC
from sklearn.linear_model import LinearRegression, LogisticRegression, Ridge, Lasso, ElasticNet
from sklearn import metrics
from sklearn.metrics import confusion_matrix, classification_report, precision_recall_curve, recall_score, precision_score, f1_score, accuracy_score
from sklearn import tree

# To encode categorical variables
from sklearn.preprocessing import LabelEncoder

# For tuning the model
from sklearn.model_selection import GridSearchCV, RandomizedSearchCV

#AUC-ROC Tuning
from sklearn.metrics import roc_curve
from matplotlib import pyplot

# To check model performance
from sklearn.metrics import make_scorer,mean_squared_error, r2_score, mean_absolute_error

#Import tensorflow for deep learning
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Input, Dropout,BatchNormalization
from tensorflow.keras.wrappers.scikit_learn import KerasClassifier
from keras.optimizers import Adamax, Adam
from tensorflow.keras import backend

Import Dataset

In [12]:
titantrain = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/Titanic/titanic_train.csv')
titantest = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/Titanic//titanic_test.csv')
titansubmission = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/Titanic//titanic_gender_submission.csv')

Create copy of each dataset

In [13]:
#This is done to protect the data, in case you accidentally deleted the data (better be safe than sorry)
titantrain_copy = titantrain.copy()
titantest_copy = titantest.copy()
titansubmission_copy = titansubmission.copy()

Seeing what each data looks like

In [14]:
#This is the data to be tested
titantest.head()
Out[14]:
PassengerId Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
0 892 3 Kelly, Mr. James male 34.5 0 0 330911 7.8292 NaN Q
1 893 3 Wilkes, Mrs. James (Ellen Needs) female 47.0 1 0 363272 7.0000 NaN S
2 894 2 Myles, Mr. Thomas Francis male 62.0 0 0 240276 9.6875 NaN Q
3 895 3 Wirz, Mr. Albert male 27.0 0 0 315154 8.6625 NaN S
4 896 3 Hirvonen, Mrs. Alexander (Helga E Lindqvist) female 22.0 1 1 3101298 12.2875 NaN S
In [15]:
#data that will be used to train the model
titantrain.head()
Out[15]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 0 PC 17599 71.2833 C85 C
2 3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S
3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 0 113803 53.1000 C123 S
4 5 0 3 Allen, Mr. William Henry male 35.0 0 0 373450 8.0500 NaN S
In [16]:
#This is what our data to be submitted should look like
titansubmission.head()
Out[16]:
PassengerId Survived
0 892 0
1 893 1
2 894 0
3 895 0
4 896 1

Understanding the Data¶

In [17]:
#This function will study the data's shape, datatype, number of null data and number of duplicate data.
def studydata(df):
    print("Shape:")
    print(df.shape)
    print("\nInfo:")
    print(df.info())
    print("\nNull:")
    print(df.isnull().sum())
    print("\nDuplicates:")
    print(df.duplicated().sum())

    # print("\nHead:")
    # print(df.head().T)
    # print("\nTail:")
    # print(df.tail().T)

Training Data¶

In [18]:
studydata(titantrain)
Shape:
(891, 12)

Info:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
 #   Column       Non-Null Count  Dtype  
---  ------       --------------  -----  
 0   PassengerId  891 non-null    int64  
 1   Survived     891 non-null    int64  
 2   Pclass       891 non-null    int64  
 3   Name         891 non-null    object 
 4   Sex          891 non-null    object 
 5   Age          714 non-null    float64
 6   SibSp        891 non-null    int64  
 7   Parch        891 non-null    int64  
 8   Ticket       891 non-null    object 
 9   Fare         891 non-null    float64
 10  Cabin        204 non-null    object 
 11  Embarked     889 non-null    object 
dtypes: float64(2), int64(5), object(5)
memory usage: 83.7+ KB
None

Null:
PassengerId      0
Survived         0
Pclass           0
Name             0
Sex              0
Age            177
SibSp            0
Parch            0
Ticket           0
Fare             0
Cabin          687
Embarked         2
dtype: int64

Duplicates:
0
In [19]:
#Getting percentage of null values
round(titantrain.isnull().sum()/len(titantrain)*100,2)
Out[19]:
PassengerId     0.00
Survived        0.00
Pclass          0.00
Name            0.00
Sex             0.00
Age            19.87
SibSp           0.00
Parch           0.00
Ticket          0.00
Fare            0.00
Cabin          77.10
Embarked        0.22
dtype: float64
In [20]:
#To have an idea of what each column in the training data looks like
for i in titantrain:
  print(titantrain[i].value_counts().sort_values(ascending = False))
  print('-'*50)
PassengerId
1      1
13     1
14     1
3      1
4      1
      ..
886    1
887    1
888    1
889    1
891    1
Name: count, Length: 891, dtype: int64
--------------------------------------------------
Survived
0    549
1    342
Name: count, dtype: int64
--------------------------------------------------
Pclass
3    491
1    216
2    184
Name: count, dtype: int64
--------------------------------------------------
Name
Braund, Mr. Owen Harris                         1
Saundercock, Mr. William Henry                  1
Andersson, Mr. Anders Johan                     1
Heikkinen, Miss. Laina                          1
Futrelle, Mrs. Jacques Heath (Lily May Peel)    1
                                               ..
Rice, Mrs. William (Margaret Norton)            1
Montvila, Rev. Juozas                           1
Graham, Miss. Margaret Edith                    1
Johnston, Miss. Catherine Helen "Carrie"        1
Dooley, Mr. Patrick                             1
Name: count, Length: 891, dtype: int64
--------------------------------------------------
Sex
male      577
female    314
Name: count, dtype: int64
--------------------------------------------------
Age
24.00    30
22.00    27
18.00    26
19.00    25
28.00    25
30.00    25
21.00    24
25.00    23
36.00    22
29.00    20
26.00    18
27.00    18
35.00    18
32.00    18
16.00    17
31.00    17
20.00    15
34.00    15
33.00    15
23.00    15
39.00    14
42.00    13
17.00    13
40.00    13
45.00    12
38.00    11
50.00    10
2.00     10
4.00     10
44.00     9
48.00     9
47.00     9
9.00      8
54.00     8
1.00      7
51.00     7
14.00     6
52.00     6
37.00     6
49.00     6
41.00     6
3.00      6
15.00     5
43.00     5
58.00     5
56.00     4
5.00      4
11.00     4
60.00     4
8.00      4
62.00     4
65.00     3
7.00      3
61.00     3
46.00     3
6.00      3
71.00     2
45.50     2
28.50     2
32.50     2
55.00     2
40.50     2
59.00     2
0.83      2
0.75      2
57.00     2
30.50     2
63.00     2
13.00     2
64.00     2
10.00     2
70.00     2
14.50     1
23.50     1
0.92      1
55.50     1
36.50     1
12.00     1
70.50     1
24.50     1
53.00     1
20.50     1
80.00     1
66.00     1
0.67      1
0.42      1
34.50     1
74.00     1
Name: count, dtype: int64
--------------------------------------------------
SibSp
0    608
1    209
2     28
4     18
3     16
8      7
5      5
Name: count, dtype: int64
--------------------------------------------------
Parch
0    678
1    118
2     80
5      5
3      5
4      4
6      1
Name: count, dtype: int64
--------------------------------------------------
Ticket
347082              7
1601                7
CA. 2343            7
3101295             6
CA 2144             6
                   ..
2683                1
SOTON/O2 3101287    1
11774               1
392092              1
370376              1
Name: count, Length: 681, dtype: int64
--------------------------------------------------
Fare
8.0500     43
13.0000    42
7.8958     38
7.7500     34
26.0000    31
           ..
32.3208     1
8.3625      1
8.4333      1
25.5875     1
10.5167     1
Name: count, Length: 248, dtype: int64
--------------------------------------------------
Cabin
B96 B98            4
C23 C25 C27        4
G6                 4
C22 C26            3
F33                3
F2                 3
E101               3
D                  3
D26                2
F4                 2
C124               2
F G73              2
B58 B60            2
C52                2
D33                2
D20                2
D17                2
B28                2
C83                2
E25                2
C126               2
B22                2
C92                2
C2                 2
E33                2
B51 B53 B55        2
C68                2
B57 B59 B63 B66    2
D35                2
B5                 2
C78                2
C93                2
E8                 2
D36                2
C123               2
E121               2
E44                2
B77                2
C125               2
B35                2
B18                2
E24                2
B49                2
C65                2
E67                2
B20                2
D56                1
E31                1
B30                1
B78                1
A6                 1
C118               1
C103               1
E46                1
D10 D12            1
A19                1
A5                 1
B4                 1
C110               1
F E69              1
D7                 1
D47                1
B19                1
A7                 1
C49                1
A32                1
B80                1
A31                1
A34                1
B73                1
C7                 1
D46                1
E50                1
E36                1
C54                1
C87                1
E34                1
C32                1
C91                1
E40                1
T                  1
C128               1
D37                1
C106               1
B79                1
C82                1
C104               1
C111               1
E38                1
D21                1
E12                1
E63                1
A14                1
B37                1
C30                1
D15                1
B102               1
B94                1
A23                1
A24                1
C50                1
B42                1
D49                1
B71                1
C85                1
D50                1
B41                1
D9                 1
E68                1
A10                1
C99                1
C101               1
A20                1
B50                1
A26                1
D48                1
D19                1
C86                1
A16                1
E58                1
C70                1
E17                1
D28                1
C47                1
E49                1
B86                1
C95                1
E10                1
B39                1
F G63              1
C62 C64            1
C90                1
C45                1
B38                1
B101               1
D45                1
C46                1
D30                1
D11                1
E77                1
F38                1
B3                 1
D6                 1
B82 B84            1
A36                1
B69                1
C148               1
Name: count, dtype: int64
--------------------------------------------------
Embarked
S    644
C    168
Q     77
Name: count, dtype: int64
--------------------------------------------------

Observations:

  • There are 891 entries of data
  • Passenger ID is integer datatype, something that can be changed as it should not be considered a continuous variable.
  • All other text columns are object datatype, including Ticket number.
  • Age and Fare are float datatypes, the rest are integers.
  • From the cabin number, it appears that the letter is the deck of the titanic, which could be important in determining the survival of the passenger.
  • Upon inspection, the ticket number can be very different from each other, which could be a sign that the ticket number is assigned based on a ticketing system. We can look into this to obtain more insight.
  • The fare of the tickets from the same class can be different, which could give us more insight upon investigations.
  • PassengerId and Name are identifying variables, they might not be useful for model building.
  • There are quite a significant number of null values: 20% of Age, 77% of Cabin, and 0.22% of Embarked are null values.
  • There are no duplicate values.

Test Data¶

In [21]:
studydata(titantest)
Shape:
(418, 11)

Info:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 418 entries, 0 to 417
Data columns (total 11 columns):
 #   Column       Non-Null Count  Dtype  
---  ------       --------------  -----  
 0   PassengerId  418 non-null    int64  
 1   Pclass       418 non-null    int64  
 2   Name         418 non-null    object 
 3   Sex          418 non-null    object 
 4   Age          332 non-null    float64
 5   SibSp        418 non-null    int64  
 6   Parch        418 non-null    int64  
 7   Ticket       418 non-null    object 
 8   Fare         417 non-null    float64
 9   Cabin        91 non-null     object 
 10  Embarked     418 non-null    object 
dtypes: float64(2), int64(4), object(5)
memory usage: 36.0+ KB
None

Null:
PassengerId      0
Pclass           0
Name             0
Sex              0
Age             86
SibSp            0
Parch            0
Ticket           0
Fare             1
Cabin          327
Embarked         0
dtype: int64

Duplicates:
0
In [22]:
#Getting percentage of null values
round(titantest.isnull().sum()/len(titantrain)*100,2)
Out[22]:
PassengerId     0.00
Pclass          0.00
Name            0.00
Sex             0.00
Age             9.65
SibSp           0.00
Parch           0.00
Ticket          0.00
Fare            0.11
Cabin          36.70
Embarked        0.00
dtype: float64
In [23]:
#Seeing what the single null fare data looks like
titantest.loc[titantest['Fare'].isna()]
Out[23]:
PassengerId Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
152 1044 3 Storey, Mr. Thomas male 60.5 0 0 3701 NaN NaN S

Observations:

  • There are null values in age and cabin, just like in training data
  • There is an additional null value in Fare, nothing about it that stands out except that it has a null fare value. It can be substituted with the median values
  • The 'Survived' column is not in the dataset as well, as that is the variable of interest that we will be predicting

Exploratory Data Analysis¶

First off, let's convert the datatypes into the suitable ones first, and then analyze the numerical and categorical variables respectively.

In [24]:
titantrain.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
 #   Column       Non-Null Count  Dtype  
---  ------       --------------  -----  
 0   PassengerId  891 non-null    int64  
 1   Survived     891 non-null    int64  
 2   Pclass       891 non-null    int64  
 3   Name         891 non-null    object 
 4   Sex          891 non-null    object 
 5   Age          714 non-null    float64
 6   SibSp        891 non-null    int64  
 7   Parch        891 non-null    int64  
 8   Ticket       891 non-null    object 
 9   Fare         891 non-null    float64
 10  Cabin        204 non-null    object 
 11  Embarked     889 non-null    object 
dtypes: float64(2), int64(5), object(5)
memory usage: 83.7+ KB
In [25]:
#converting the following integer data into object data
titantrain['PassengerId'] = titantrain['PassengerId'].astype('object')
titantrain['Pclass'] = titantrain['Pclass'].astype('object')
titantrain['Survived'] = titantrain['Survived'].astype('object')

#Retrieving the names of numerical columns and categorical columns
num_cols = titantrain._get_numeric_data().columns
cat_cols = titantrain.select_dtypes(exclude='number').columns

print(num_cols)
print(cat_cols)
Index(['Age', 'SibSp', 'Parch', 'Fare'], dtype='object')
Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Ticket', 'Cabin',
       'Embarked'],
      dtype='object')

Functions¶

In [26]:
# Countplot for categorical variables
def labeled_countplot(data,feature,perc = False, n = None, order = True):
  total = len(data[feature])
  count = data[feature].nunique()

  #Changing size of the plot
  if n is None:
    plt.figure(figsize = (count + 1, 5)) #if n is not specified, then the size of the chart will be the according to number of features
  else:
    plt.figure(figsize = (n + 1, 5))

  #Rotate the x labels
  plt.xticks(rotation = 90)

  #Create the countplot and assigning it to object

  if order == False:
    ax = sns.countplot(data = data,
                      x = feature,
                      palette = "Paired")

  elif order == True:
    ax = sns.countplot(data = data,
                      x = feature,
                      palette = "Paired",
                      order = data.groupby([feature])['PassengerId'].count().sort_values(ascending = False).index)
  else:
    ax = sns.countplot(data = data,
                      x = feature,
                      palette = "Paired",
                      order = order)

  #Creating the labels
  for p in ax.patches:
    if perc == True:
      label = "{:.1f}%".format(100*p.get_height()/total) #Gets the percentage value of the height
    else:
      label = p.get_height() # Just get the height without percentage

    #Getting coordinates for the annotation
    x = p.get_x() + p.get_width()/2
    y = p.get_height()

    #Coding the annotations
    ax.annotate(label,(x,y),
                ha = "center",
                va = "center",
                size = 12,
                xytext = (0,5),
                textcoords = "offset points")

  plt.show()
In [27]:
#Histogram + Boxplot for Numerical Variables
def histogram_boxplot(data, feature, figsize=(12, 7), kde=False, bins=None, whis = 1.5,outliers = True, mean = True, median = True):
    #Creating the subplot to place both plots in
    f2, (ax_box2, ax_hist2) = plt.subplots(nrows = 2, # Number of rows of the subplot grid = 2
                              sharex = True,  # x-axis will be shared among all subplots
                              gridspec_kw = {"height_ratios": (0.25, 0.75)}, #This sets the 2 subplots' height ratios, with top one taking 25% of the total figure
                              figsize = figsize) # Creating the 2 subplots

    # Create Boxplot that shows mean
    sns.boxplot(data = data,
                x = feature,
                whis = whis,
                showfliers =  outliers,
                ax = ax_box2,
                showmeans = True,
                color = "orange")

    # Create Histogram
    sns.histplot(data = data,
                 x = feature,
                 kde = kde,
                 ax = ax_hist2,
                 bins = bins, #Since the bins cannot = non-integer, we need this second part of code
                 palette = "winter") if bins else sns.histplot(data = data,
                                                               x = feature,
                                                               kde = kde,
                                                               ax = ax_hist2)
    # Add mean to the histogram
    if mean == True:
      ax_hist2.axvline(data[feature].mean(),
                      color = "green",
                      linestyle = "--")
    else:
      pass

    # Add median to the histogram
    if median == True:
      ax_hist2.axvline(data[feature].median(),
                      color = "black",
                      linestyle = "-.")
    else:
      pass
    #Print out the 5 summary for easier viewing
    print(data[feature].describe())
In [28]:
# Function to plot stacked bar plots

def stacked_barplot(data, predictor, target):

    count = data[predictor].nunique() #This pulls out the number of unique values in the column
    sorter = data[target].value_counts().index[-1] #this tells you the least frequent value, as it sorts based on the frequency, and -1 means the least frequent

    #Create the stacked barplot for understanding
    tab1 = pd.crosstab(data[predictor],
                       data[target],
                       margins = True).sort_values(by = sorter, #Sort based on the least frequent value
                                                   ascending = False)
    print(tab1)
    print("-" * 120)

    #Create the stacked barplot for visualizing
    tab = pd.crosstab(data[predictor],
                      data[target],
                      normalize = "index").sort_values(by = sorter,
                                                       ascending = False)

    tab.plot(kind = "bar",
             stacked = True,
             figsize = (count + 1, 5))

    plt.legend(loc = "lower left",frameon = False,)
    plt.legend(loc = "upper left", bbox_to_anchor = (1, 1))
    plt.show()

Univariate Analysis¶

Numerical Variables¶

Age¶

In [29]:
histogram_boxplot(titantrain,'Age', kde = True)
count    714.000000
mean      29.699118
std       14.526497
min        0.420000
25%       20.125000
50%       28.000000
75%       38.000000
max       80.000000
Name: Age, dtype: float64
In [30]:
titantrain.loc[titantrain['Age'] < 1]
Out[30]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
78 79 1 2 Caldwell, Master. Alden Gates male 0.83 0 2 248738 29.0000 NaN S
305 306 1 1 Allison, Master. Hudson Trevor male 0.92 1 2 113781 151.5500 C22 C26 S
469 470 1 3 Baclini, Miss. Helene Barbara female 0.75 2 1 2666 19.2583 NaN C
644 645 1 3 Baclini, Miss. Eugenie female 0.75 2 1 2666 19.2583 NaN C
755 756 1 2 Hamalainen, Master. Viljo male 0.67 1 1 250649 14.5000 NaN S
803 804 1 3 Thomas, Master. Assad Alexander male 0.42 0 1 2625 8.5167 NaN C
831 832 1 2 Richards, Master. George Sibley male 0.83 1 1 29106 18.7500 NaN S

Observations:

  • There are a lot of passengers that are aged below 5
  • There are a number of outliers that are aged above 60, but it is very possible for elderly passengers to be on the titanic.
  • The mean age is around 29 years old
  • The median age is around 28 years old

Siblings & Spouses¶

In [31]:
#Since the number of siblings and spouses are discrete values, we use the countplot to study this variable
labeled_countplot(titantrain,'SibSp', order = ['0','1','2','3','4','5','8'])

Observations:

  • Majority of the passengers did not have siblings or spouses (68.2%)
  • 23.5% of the passengers travelled with one sibling or spouse
  • Only 7 people travelled with 8 siblings, which is weird as there should be 8 people identifying to be travelling with 8 SibSp
In [32]:
#See if there are any trends with the cluster that has 8 siblings
titantrain.loc[titantrain['SibSp'] == 8]
Out[32]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
159 160 0 3 Sage, Master. Thomas Henry male NaN 8 2 CA. 2343 69.55 NaN S
180 181 0 3 Sage, Miss. Constance Gladys female NaN 8 2 CA. 2343 69.55 NaN S
201 202 0 3 Sage, Mr. Frederick male NaN 8 2 CA. 2343 69.55 NaN S
324 325 0 3 Sage, Mr. George John Jr male NaN 8 2 CA. 2343 69.55 NaN S
792 793 0 3 Sage, Miss. Stella Anna female NaN 8 2 CA. 2343 69.55 NaN S
846 847 0 3 Sage, Mr. Douglas Bullen male NaN 8 2 CA. 2343 69.55 NaN S
863 864 0 3 Sage, Miss. Dorothy Edith "Dolly" female NaN 8 2 CA. 2343 69.55 NaN S
In [33]:
#Since all the siblings contain the surname 'Sage', we can see if there are any other passengers with 'Sage' in their name
titantrain[titantrain['Name'].astype('string').str.contains("Sage")]
Out[33]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
159 160 0 3 Sage, Master. Thomas Henry male NaN 8 2 CA. 2343 69.55 NaN S
180 181 0 3 Sage, Miss. Constance Gladys female NaN 8 2 CA. 2343 69.55 NaN S
201 202 0 3 Sage, Mr. Frederick male NaN 8 2 CA. 2343 69.55 NaN S
324 325 0 3 Sage, Mr. George John Jr male NaN 8 2 CA. 2343 69.55 NaN S
641 642 1 1 Sagesser, Mlle. Emma female 24.0 0 0 PC 17477 69.30 B35 C
792 793 0 3 Sage, Miss. Stella Anna female NaN 8 2 CA. 2343 69.55 NaN S
846 847 0 3 Sage, Mr. Douglas Bullen male NaN 8 2 CA. 2343 69.55 NaN S
863 864 0 3 Sage, Miss. Dorothy Edith "Dolly" female NaN 8 2 CA. 2343 69.55 NaN S
In [34]:
#It was also observed that all the siblings had the same ticket number, so we can see if anybody else had the same ticekt.
titantrain.loc[titantrain['Ticket'] == "CA. 2343"]
Out[34]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
159 160 0 3 Sage, Master. Thomas Henry male NaN 8 2 CA. 2343 69.55 NaN S
180 181 0 3 Sage, Miss. Constance Gladys female NaN 8 2 CA. 2343 69.55 NaN S
201 202 0 3 Sage, Mr. Frederick male NaN 8 2 CA. 2343 69.55 NaN S
324 325 0 3 Sage, Mr. George John Jr male NaN 8 2 CA. 2343 69.55 NaN S
792 793 0 3 Sage, Miss. Stella Anna female NaN 8 2 CA. 2343 69.55 NaN S
846 847 0 3 Sage, Mr. Douglas Bullen male NaN 8 2 CA. 2343 69.55 NaN S
863 864 0 3 Sage, Miss. Dorothy Edith "Dolly" female NaN 8 2 CA. 2343 69.55 NaN S

As there are no null values in the SibSp column, the last sibling may just have been excluded from this dataset, nothing out of the ordinary.

Parents or Cildren¶

In [35]:
#Since the number of siblings and spouses are discrete values, we use the countplot to study this variable
labeled_countplot(titantrain,'Parch', perc = True)

Observations:

  • 76% of the passengers are not travelling with parents or children
  • Only one passenger is travelling with 6 children
  • The trend seems natural, that there is lesser number of people traveling with more parents/children

Fare¶

In [36]:
histogram_boxplot(titantrain,'Fare')
count    891.000000
mean      32.204208
std       49.693429
min        0.000000
25%        7.910400
50%       14.454200
75%       31.000000
max      512.329200
Name: Fare, dtype: float64
In [37]:
#Let's look at the top 10 most expensive tickets on the titanic, and see if 512 is a common price for the tickets
titantrain.sort_values(by = 'Fare', ascending = False).head(10)
Out[37]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
258 259 1 1 Ward, Miss. Anna female 35.0 0 0 PC 17755 512.3292 NaN C
737 738 1 1 Lesurer, Mr. Gustave J male 35.0 0 0 PC 17755 512.3292 B101 C
679 680 1 1 Cardeza, Mr. Thomas Drake Martinez male 36.0 0 1 PC 17755 512.3292 B51 B53 B55 C
88 89 1 1 Fortune, Miss. Mabel Helen female 23.0 3 2 19950 263.0000 C23 C25 C27 S
27 28 0 1 Fortune, Mr. Charles Alexander male 19.0 3 2 19950 263.0000 C23 C25 C27 S
341 342 1 1 Fortune, Miss. Alice Elizabeth female 24.0 3 2 19950 263.0000 C23 C25 C27 S
438 439 0 1 Fortune, Mr. Mark male 64.0 1 4 19950 263.0000 C23 C25 C27 S
311 312 1 1 Ryerson, Miss. Emily Borie female 18.0 2 2 PC 17608 262.3750 B57 B59 B63 B66 C
742 743 1 1 Ryerson, Miss. Susan Parker "Suzette" female 21.0 2 2 PC 17608 262.3750 B57 B59 B63 B66 C
118 119 0 1 Baxter, Mr. Quigg Edmond male 24.0 0 1 PC 17558 247.5208 B58 B60 C
In [38]:
# The cheapest tickets are 0, which means the tickets are free. Let's take a look and see if that is normal
titantrain.loc[titantrain['Fare'] == 0]
Out[38]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
179 180 0 3 Leonard, Mr. Lionel male 36.0 0 0 LINE 0.0 NaN S
263 264 0 1 Harrison, Mr. William male 40.0 0 0 112059 0.0 B94 S
271 272 1 3 Tornquist, Mr. William Henry male 25.0 0 0 LINE 0.0 NaN S
277 278 0 2 Parkes, Mr. Francis "Frank" male NaN 0 0 239853 0.0 NaN S
302 303 0 3 Johnson, Mr. William Cahoone Jr male 19.0 0 0 LINE 0.0 NaN S
413 414 0 2 Cunningham, Mr. Alfred Fleming male NaN 0 0 239853 0.0 NaN S
466 467 0 2 Campbell, Mr. William male NaN 0 0 239853 0.0 NaN S
481 482 0 2 Frost, Mr. Anthony Wood "Archie" male NaN 0 0 239854 0.0 NaN S
597 598 0 3 Johnson, Mr. Alfred male 49.0 0 0 LINE 0.0 NaN S
633 634 0 1 Parr, Mr. William Henry Marsh male NaN 0 0 112052 0.0 NaN S
674 675 0 2 Watson, Mr. Ennis Hastings male NaN 0 0 239856 0.0 NaN S
732 733 0 2 Knight, Mr. Robert J male NaN 0 0 239855 0.0 NaN S
806 807 0 1 Andrews, Mr. Thomas Jr male 39.0 0 0 112050 0.0 A36 S
815 816 0 1 Fry, Mr. Richard male NaN 0 0 112058 0.0 B102 S
822 823 0 1 Reuchlin, Jonkheer. John George male 38.0 0 0 19972 0.0 NaN S

Observations:

  • It appears that the passengers who purchased the $512 tickets were from the same group, with the same ticket number of PC17755.
  • There are also many passengers with free tickets, coming from all age and classes. All of the free tickets are male and come from Southampton.

Trivia: Based on research, it seems like Anna Ward and Gustave J Lesurer were both servants to thomas Drake Martinez

Categorical Variables¶

Survived¶

In [39]:
labeled_countplot(titantrain,'Survived',True)

Observations:

  • Majority of the passengers did not survived the Titanic (62%)

Pclass¶

In [40]:
labeled_countplot(titantrain, 'Pclass',True)

Observations:

  • More than half of the passengers are staying in the lower class (55%)
  • There are more passengers staying in the upper class than the middle class, even though the normal distribution should be that there are lesser passengers in in the higher classes.

Sex¶

In [41]:
labeled_countplot(titantrain, 'Sex',True)

Tickets¶

Ticket is akin to Name, another identifier. But let's still look into the data to se if there is any pattern inside.

In [42]:
#Number of unique ticket numbers
titantrain['Ticket'].nunique()
Out[42]:
681
In [43]:
#Which are the tickets with multiple counts?
titantrain['Ticket'].value_counts()
Out[43]:
Ticket
347082      7
CA. 2343    7
1601        7
3101295     6
CA 2144     6
           ..
9234        1
19988       1
2693        1
PC 17612    1
370376      1
Name: count, Length: 681, dtype: int64
In [44]:
#Why do these tickets have multiple counts?
titantrain.loc[titantrain['Ticket'] == '347082']
Out[44]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
13 14 0 3 Andersson, Mr. Anders Johan male 39.0 1 5 347082 31.275 NaN S
119 120 0 3 Andersson, Miss. Ellis Anna Maria female 2.0 4 2 347082 31.275 NaN S
541 542 0 3 Andersson, Miss. Ingeborg Constanzia female 9.0 4 2 347082 31.275 NaN S
542 543 0 3 Andersson, Miss. Sigrid Elisabeth female 11.0 4 2 347082 31.275 NaN S
610 611 0 3 Andersson, Mrs. Anders Johan (Alfrida Konstant... female 39.0 1 5 347082 31.275 NaN S
813 814 0 3 Andersson, Miss. Ebba Iris Alfrida female 6.0 4 2 347082 31.275 NaN S
850 851 0 3 Andersson, Master. Sigvard Harald Elias male 4.0 4 2 347082 31.275 NaN S

Observations:

  • It appears that if a group or family buys multiple tickets together, that single transaction is considered one unique ticket.
  • Another thing to note is that the tickets sometimes include letters, and can have different length of numbers.

Cabin¶

In [45]:
nullcount = round(titantrain['Cabin'].isna().sum()/len(titantrain)*100,2)
print(f'{nullcount}% of data is null!')
77.1% of data is null!
In [46]:
titantrain['Cabin'].value_counts()
Out[46]:
Cabin
B96 B98            4
G6                 4
C23 C25 C27        4
C22 C26            3
F33                3
F2                 3
E101               3
D                  3
C78                2
C93                2
E8                 2
D36                2
B77                2
C123               2
E121               2
E44                2
D35                2
C125               2
E67                2
B35                2
B18                2
E24                2
B49                2
C65                2
B20                2
B5                 2
B57 B59 B63 B66    2
C126               2
B51 B53 B55        2
F4                 2
C124               2
F G73              2
B58 B60            2
C52                2
D33                2
C68                2
D20                2
D26                2
B28                2
C83                2
E25                2
D17                2
B22                2
C92                2
C2                 2
E33                2
C70                1
E58                1
A16                1
C86                1
D19                1
D48                1
A26                1
B50                1
A20                1
C101               1
A10                1
A23                1
E68                1
D9                 1
B41                1
D50                1
C85                1
B71                1
D49                1
B42                1
C50                1
A24                1
E17                1
D28                1
C47                1
E49                1
B69                1
B102               1
A36                1
B82 B84            1
D6                 1
B3                 1
F38                1
E77                1
D11                1
D30                1
C46                1
D45                1
B101               1
B38                1
C45                1
C90                1
C62 C64            1
F G63              1
B39                1
E10                1
C95                1
B86                1
C99                1
B94                1
C87                1
D15                1
A31                1
B80                1
B4                 1
A32                1
C49                1
A7                 1
B19                1
D47                1
D7                 1
F E69              1
C110               1
D10 D12            1
A5                 1
E31                1
B30                1
B78                1
A6                 1
D56                1
C103               1
E46                1
C118               1
A19                1
B73                1
A34                1
D46                1
B79                1
C30                1
B37                1
A14                1
E63                1
E12                1
D21                1
E38                1
C111               1
C104               1
C82                1
C106               1
E50                1
D37                1
C128               1
T                  1
E40                1
C91                1
C32                1
E34                1
C7                 1
C54                1
E36                1
C148               1
Name: count, dtype: int64

Observations:

  • the cabin number is made up of alphabets and numbers.
  • 77% of the data is missing

The alphabet indicates the deck layer, and the numbers indicate the location of the cabin on the floor. So we can separate this column into the alphabets and the numbers to further understand if the location of the cabin on the Titanic will influence the survival rate

In [47]:
# Extract alphabets from cabin and categorize them into single alphabets
titantrain['cabin_alphabet'] = titantrain['Cabin'].str.extractall(r'([A-Za-z]+)').groupby(level=0)[0].apply(lambda x: ','.join(x))
titantrain['cabin_alphabet'] = titantrain['cabin_alphabet'].str.split(',').str[0]

#Extract numbers from cabin and obtaining the mean of the passengers with multiple rooms
titantrain['cabin_numbers'] = titantrain['Cabin'].str.extractall(r'(\d+)').groupby(level=0)[0].agg(list).apply(lambda x: sum(map(int, x)) / len(x)).astype(int)
In [48]:
titantrain.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 14 columns):
 #   Column          Non-Null Count  Dtype  
---  ------          --------------  -----  
 0   PassengerId     891 non-null    object 
 1   Survived        891 non-null    object 
 2   Pclass          891 non-null    object 
 3   Name            891 non-null    object 
 4   Sex             891 non-null    object 
 5   Age             714 non-null    float64
 6   SibSp           891 non-null    int64  
 7   Parch           891 non-null    int64  
 8   Ticket          891 non-null    object 
 9   Fare            891 non-null    float64
 10  Cabin           204 non-null    object 
 11  Embarked        889 non-null    object 
 12  cabin_alphabet  204 non-null    object 
 13  cabin_numbers   200 non-null    float64
dtypes: float64(3), int64(2), object(9)
memory usage: 97.6+ KB
In [49]:
titantrain['cabin_alphabet'].value_counts()
Out[49]:
cabin_alphabet
C    59
B    47
D    33
E    32
A    15
F    13
G     4
T     1
Name: count, dtype: int64

Cabin Alphabets

In [50]:
labeled_countplot(titantrain, 'cabin_alphabet', order = ['A','B','C','D','E','F','G','T'])

Observations:

  • Deck C has the most passengers, followed by B, D and E
  • There are lesser passengers staying in the upper and lower decks
  • There is one person staying in deck 'T', which does not fit the alphabetical order of the cabin number
  • The distribution of the cabin is slightly skewed to the right
  • The total number of cabins is much lesser than the actual distribution, so this distribution might not be accurate

Cabin Numbers

In [51]:
histogram_boxplot(titantrain, 'cabin_numbers')
count    200.000000
mean      50.665000
std       35.380527
min        2.000000
25%       24.000000
50%       43.000000
75%       77.250000
max      148.000000
Name: cabin_numbers, dtype: float64
In [52]:
g = sns.histplot(data = titantrain, x = 'cabin_numbers', hue = 'Survived', kde = True, palette = 'bright')
g.xaxis.set_major_locator(ticker.MultipleLocator(25))

Observations:

  • It appears that there may be 2 bigger groups of cabins:
    • 0 - 75
    • 76 - 150
  • There is also more passengers staying in the lower numbers, indicating that the location of the rooms with the smaller numbers are more common.
  • From the KDE plot, there is a much higher rate of survival if your number is between 0 - 75

Embarked¶

In [53]:
labeled_countplot(titantrain, 'Embarked',True)

Observations:

  • 72% of the passengers came from Southampton
  • There are 2 outliers

Multivariate Analysis¶

Numerical Variables¶

In [54]:
titantrain['Survived'] = titantrain['Survived'].astype('int')
plt.figure(figsize = (8,6))
sns.heatmap(titantrain.corr(numeric_only = True), annot = True, cmap = 'viridis')
Out[54]:
<Axes: >

Observations:

  • There is a positive relationship between the price of the ticket and the survival rate
  • There is a slight negative relationship between Age and Survival rate
  • There is also a slight negative relationship between survival rate and the presence of siblings and spouses.

Does the Deck layer affect the survival rate?¶

In [55]:
sns.countplot(x = titantrain['cabin_alphabet'], hue = titantrain['Survived'], order = ['A','B','C','D','E','F','G','T'])
Out[55]:
<Axes: xlabel='cabin_alphabet', ylabel='count'>

Observations:

  • Passengers in deck B and C have the highest survival rate.
  • There are more passengers that have survived than passengers that have died in deck D to F
  • Deck G has equal death and survival rate.
  • More passengers died in deck A than thos that survived.
  • This data is not representative right now, as there should be more passengers that have died overall, as discovered in univariate analysis of the survival frequency. Therefore we can say that this distribution is not accurate right now due to the significant null values.
  • However, it is possible that deck B and C had the easiest and fastest access to the lifeboats, resulting in the much higher survival rate

Does gender affect survival?¶

In [56]:
sns.countplot(x = titantrain['Sex'], hue = titantrain['Survived'])
Out[56]:
<Axes: xlabel='Sex', ylabel='count'>

Observations:

  • It is very clear from this chart being a female dramatically increases the survival rate.

How does age affect the survival rate?¶

In [57]:
sns.kdeplot(titantrain, x = 'Age', hue = 'Survived', shade = True)
Out[57]:
<Axes: xlabel='Age', ylabel='Density'>

Observations:

  • Aha! The children have a higher survival rate

Does Age in different gender affect the survival rate?¶

In [58]:
sns.swarmplot(titantrain, x ='Sex', y = 'Age', hue = 'Survived')
Out[58]:
<Axes: xlabel='Sex', ylabel='Age'>

Observations:

  • Generally, being female will have a higher survival rate on the titanic.
  • It can also be seen that male children have a higher survival rate as compared to that of adult males.

Do people in the higher classes have higher chance of survival?¶

In [59]:
stacked_barplot(titantrain,'Pclass','Survived')
Survived    0    1  All
Pclass                 
All       549  342  891
1          80  136  216
3         372  119  491
2          97   87  184
------------------------------------------------------------------------------------------------------------------------

Observations:

  • Indeed a higher class means you have a higher chance of survival. The percentage of survivors decreases with the class.

Does age matter in different class?¶

In [60]:
sns.set_style("whitegrid")
sns.swarmplot(titantrain, x = 'Pclass', y = 'Age', hue = 'Survived')
Out[60]:
<Axes: xlabel='Pclass', ylabel='Age'>
In [61]:
titantrain.loc[(titantrain['Survived'] == 1) & (titantrain['Pclass'] == 1)].sort_values(by='Age',ascending = True)
Out[61]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked cabin_alphabet cabin_numbers
305 306 1 1 Allison, Master. Hudson Trevor male 0.92 1 2 113781 151.5500 C22 C26 S C 24.0
445 446 1 1 Dodge, Master. Washington male 4.00 0 2 33638 81.8583 A34 S A 34.0
802 803 1 1 Carter, Master. William Thornton II male 11.00 1 2 113760 120.0000 B96 B98 S B 97.0
435 436 1 1 Carter, Miss. Lucile Polk female 14.00 1 2 113760 120.0000 B96 B98 S B 97.0
689 690 1 1 Madill, Miss. Georgette Alexandra female 15.00 0 1 24160 211.3375 B5 S B 5.0
504 505 1 1 Maioni, Miss. Roberta female 16.00 0 0 110152 86.5000 B79 S B 79.0
853 854 1 1 Lines, Miss. Mary Conover female 16.00 0 1 PC 17592 39.4000 D28 S D 28.0
329 330 1 1 Hippach, Miss. Jean Gertrude female 16.00 0 1 111361 57.9792 B18 C B 18.0
307 308 1 1 Penasco y Castellana, Mrs. Victor de Satode (M... female 17.00 1 0 PC 17758 108.9000 C65 C C 65.0
550 551 1 1 Thayer, Mr. John Borland Jr male 17.00 0 2 17421 110.8833 C70 C C 70.0
781 782 1 1 Dick, Mrs. Albert Adrian (Vera Gillespie) female 17.00 1 0 17474 57.0000 B20 S B 20.0
311 312 1 1 Ryerson, Miss. Emily Borie female 18.00 2 2 PC 17608 262.3750 B57 B59 B63 B66 C B 61.0
700 701 1 1 Astor, Mrs. John Jacob (Madeleine Talmadge Force) female 18.00 1 0 PC 17757 227.5250 C62 C64 C C 63.0
585 586 1 1 Taussig, Miss. Ruth female 18.00 0 2 110413 79.6500 E68 S E 68.0
887 888 1 1 Graham, Miss. Margaret Edith female 19.00 0 0 112053 30.0000 B42 S B 42.0
136 137 1 1 Newsom, Miss. Helen Monypeny female 19.00 0 2 11752 26.2833 D47 S D 47.0
291 292 1 1 Bishop, Mrs. Dickinson H (Helen Walton) female 19.00 1 0 11967 91.0792 B49 C B 49.0
742 743 1 1 Ryerson, Miss. Susan Parker "Suzette" female 21.00 2 2 PC 17608 262.3750 B57 B59 B63 B66 C B 61.0
627 628 1 1 Longley, Miss. Gretchen Fiske female 21.00 0 0 13502 77.9583 D9 S D 9.0
539 540 1 1 Frolicher, Miss. Hedwig Margaritha female 22.00 0 2 13568 49.5000 B39 C B 39.0
708 709 1 1 Cleaver, Miss. Alice female 22.00 0 0 113781 151.5500 NaN S NaN NaN
356 357 1 1 Bowerman, Miss. Elsie Edith female 22.00 0 1 113505 55.0000 E33 S E 33.0
151 152 1 1 Pears, Mrs. Thomas (Edith Wearne) female 22.00 1 0 113776 66.6000 C2 S C 2.0
393 394 1 1 Newell, Miss. Marjorie female 23.00 1 0 35273 113.2750 D36 C D 36.0
88 89 1 1 Fortune, Miss. Mabel Helen female 23.00 3 2 19950 263.0000 C23 C25 C27 S C 25.0
97 98 1 1 Greenfield, Mr. William Bertram male 23.00 0 1 PC 17759 63.3583 D10 D12 C D 11.0
369 370 1 1 Aubart, Mme. Leontine Pauline female 24.00 0 0 PC 17477 69.3000 B35 C B 35.0
341 342 1 1 Fortune, Miss. Alice Elizabeth female 24.00 3 2 19950 263.0000 C23 C25 C27 S C 25.0
641 642 1 1 Sagesser, Mlle. Emma female 24.00 0 0 PC 17477 69.3000 B35 C B 35.0
710 711 1 1 Mayne, Mlle. Berthe Antonine ("Mrs de Villiers") female 24.00 0 0 PC 17482 49.5042 C90 C C 90.0
310 311 1 1 Hays, Miss. Margaret Bechstein female 24.00 0 0 11767 83.1583 C54 C C 54.0
484 485 1 1 Bishop, Mr. Dickinson H male 25.00 1 0 11967 91.0792 B49 C B 49.0
370 371 1 1 Harder, Mr. George Achilles male 25.00 1 0 11765 55.4417 E50 C E 50.0
290 291 1 1 Barber, Miss. Ellen "Nellie" female 26.00 0 0 19877 78.8500 NaN S NaN NaN
889 890 1 1 Behr, Mr. Karl Howell male 26.00 0 0 111369 30.0000 C148 C C 148.0
724 725 1 1 Chambers, Mr. Norman Campbell male 27.00 1 0 113806 53.1000 E8 S E 8.0
681 682 1 1 Hassab, Mr. Hammad male 27.00 0 0 PC 17572 76.7292 D49 C D 49.0
607 608 1 1 Daniel, Mr. Robert Williams male 27.00 0 0 113804 30.5000 NaN S NaN NaN
23 24 1 1 Sloper, Mr. William Thompson male 28.00 0 0 113788 35.5000 A6 S A 6.0
430 431 1 1 Bjornstrom-Steffansson, Mr. Mauritz Hakan male 28.00 0 0 110564 26.5500 C52 S C 52.0
730 731 1 1 Allen, Miss. Elisabeth Walton female 29.00 0 0 24160 211.3375 B5 S B 5.0
537 538 1 1 LeRoy, Miss. Bertha female 30.00 0 0 PC 17761 106.4250 NaN C NaN NaN
842 843 1 1 Serepeca, Miss. Augusta female 30.00 0 0 113798 31.0000 NaN C NaN NaN
520 521 1 1 Perreault, Miss. Anne female 30.00 0 0 12749 93.5000 B73 S B 73.0
257 258 1 1 Cherry, Miss. Gladys female 30.00 0 0 110152 86.5000 B77 S B 77.0
309 310 1 1 Francatelli, Miss. Laura Mabel female 30.00 0 0 PC 17485 56.9292 E36 C E 36.0
215 216 1 1 Newell, Miss. Madeleine female 31.00 1 0 35273 113.2750 D36 C D 36.0
690 691 1 1 Dick, Mr. Albert Adrian male 31.00 1 0 17474 57.0000 B20 S B 20.0
318 319 1 1 Wick, Miss. Mary Natalie female 31.00 0 2 36928 164.8667 C7 S C 7.0
632 633 1 1 Stahelin-Maeglin, Dr. Max male 32.00 0 0 13214 30.5000 B50 C B 50.0
218 219 1 1 Bazzani, Miss. Albina female 32.00 0 0 11813 76.2917 D15 C D 15.0
412 413 1 1 Minahan, Miss. Daisy E female 33.00 1 0 19928 90.0000 C78 Q C 78.0
809 810 1 1 Chambers, Mrs. Norman Campbell (Bertha Griggs) female 33.00 1 0 113806 53.1000 E8 S E 8.0
759 760 1 1 Rothes, the Countess. of (Lucy Noel Martha Dye... female 33.00 0 0 110152 86.5000 B77 S B 77.0
447 448 1 1 Seward, Mr. Frederic Kimber male 34.00 0 0 113794 26.5500 NaN S NaN NaN
604 605 1 1 Homer, Mr. Harry ("Mr E Haven") male 35.00 0 0 111426 26.5500 NaN C NaN NaN
258 259 1 1 Ward, Miss. Anna female 35.00 0 0 PC 17755 512.3292 NaN C NaN NaN
383 384 1 1 Holverson, Mrs. Alexander Oskar (Mary Aline To... female 35.00 1 0 113789 52.0000 NaN S NaN NaN
486 487 1 1 Hoyt, Mrs. Frederick Maxfield (Jane Anne Forby) female 35.00 1 0 19943 90.0000 C93 S C 93.0
269 270 1 1 Bissette, Miss. Amelia female 35.00 0 0 PC 17760 135.6333 C99 S C 99.0
701 702 1 1 Silverthorne, Mr. Spencer Victor male 35.00 0 0 PC 17475 26.2875 E24 S E 24.0
737 738 1 1 Lesurer, Mr. Gustave J male 35.00 0 0 PC 17755 512.3292 B101 C B 101.0
3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.00 1 0 113803 53.1000 C123 S C 123.0
230 231 1 1 Harris, Mrs. Henry Birkhardt (Irene Wallach) female 35.00 1 0 36973 83.4750 C83 S C 83.0
679 680 1 1 Cardeza, Mr. Thomas Drake Martinez male 36.00 0 1 PC 17755 512.3292 B51 B53 B55 C B 53.0
763 764 1 1 Carter, Mrs. William Ernest (Lucile Polk) female 36.00 1 2 113760 120.0000 B96 B98 S B 97.0
572 573 1 1 Flynn, Mr. John Irwin ("Irving") male 36.00 0 0 PC 17474 26.3875 E25 S E 25.0
390 391 1 1 Carter, Mr. William Ernest male 36.00 1 2 113760 120.0000 B96 B98 S B 97.0
325 326 1 1 Young, Miss. Marie Grice female 36.00 0 0 PC 17760 135.6333 C32 C C 32.0
512 513 1 1 McGough, Mr. James Robert male 36.00 0 0 PC 17473 26.2875 E25 S E 25.0
540 541 1 1 Crosby, Miss. Harriet R female 36.00 0 2 WE/P 5735 71.0000 B22 S B 22.0
248 249 1 1 Beckwith, Mr. Richard Leonard male 37.00 1 1 11751 52.5542 D35 S D 35.0
716 717 1 1 Endres, Miss. Caroline Louise female 38.00 0 0 PC 17757 227.5250 C45 C C 45.0
224 225 1 1 Hoyt, Mr. Frederick Maxfield male 38.00 1 0 19943 90.0000 C93 S C 93.0
61 62 1 1 Icard, Miss. Amelie female 38.00 0 0 113572 80.0000 B28 NaN B 28.0
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.00 1 0 PC 17599 71.2833 C85 C C 85.0
835 836 1 1 Compton, Miss. Sara Rebecca female 39.00 1 1 PC 17756 83.1583 E49 C E 49.0
558 559 1 1 Taussig, Mrs. Emil (Tillie Mandelbaum) female 39.00 1 1 110413 79.6500 E67 S E 67.0
577 578 1 1 Silvey, Mrs. William Baird (Alice Munger) female 39.00 1 0 13507 55.9000 E44 S E 44.0
581 582 1 1 Thayer, Mrs. John Borland (Marian Longstreth M... female 39.00 1 1 17421 110.8833 C68 C C 68.0
609 610 1 1 Shutes, Miss. Elizabeth W female 40.00 0 0 PC 17582 153.4625 C125 S C 125.0
209 210 1 1 Blank, Mr. Henry male 40.00 0 0 112277 31.0000 A31 C A 31.0
319 320 1 1 Spedden, Mrs. Frederic Oakley (Margaretta Corn... female 40.00 1 1 16966 134.5000 E34 C E 34.0
337 338 1 1 Burns, Miss. Elizabeth Margaret female 41.00 0 0 16966 134.5000 E40 C E 40.0
621 622 1 1 Kimball, Mr. Edwin Nelson Jr male 42.00 1 0 11753 52.5542 D19 S D 19.0
707 708 1 1 Calderhead, Mr. Edward Pennington male 42.00 0 0 PC 17476 26.2875 E24 S E 24.0
380 381 1 1 Bidois, Miss. Rosalie female 42.00 0 0 PC 17757 227.5250 NaN C NaN NaN
779 780 1 1 Robert, Mrs. Edward Scott (Elisabeth Walton Mc... female 43.00 0 1 24160 211.3375 B3 S B 3.0
194 195 1 1 Brown, Mrs. James Joseph (Margaret Tobin) female 44.00 0 0 PC 17610 27.7208 B4 C B 4.0
523 524 1 1 Hippach, Mrs. Louis Albert (Ida Sophia Fischer) female 44.00 0 1 111361 57.9792 B18 C B 18.0
187 188 1 1 Romaine, Mr. Charles Hallace ("Mr C Rolmane") male 45.00 0 0 111428 26.5500 NaN S NaN NaN
856 857 1 1 Wick, Mrs. George Dennick (Mary Hitchcock) female 45.00 1 1 36928 164.8667 NaN S NaN NaN
871 872 1 1 Beckwith, Mrs. Richard Leonard (Sallie Monypeny) female 47.00 1 1 11751 52.5542 D35 S D 35.0
862 863 1 1 Swift, Mrs. Frederick Joel (Margaret Welles Ba... female 48.00 0 0 17466 25.9292 D17 S D 17.0
645 646 1 1 Harper, Mr. Henry Sleeper male 48.00 1 0 PC 17572 76.7292 D33 C D 33.0
460 461 1 1 Anderson, Mr. Harry male 48.00 0 0 19952 26.5500 E12 S E 12.0
712 713 1 1 Taylor, Mr. Elmer Zebley male 48.00 1 0 19996 52.0000 C126 S C 126.0
556 557 1 1 Duff Gordon, Lady. (Lucille Christiana Sutherl... female 48.00 1 0 11755 39.6000 A16 C A 16.0
796 797 1 1 Leader, Dr. Alice (Farnham) female 49.00 0 0 17465 25.9292 D17 S D 17.0
52 53 1 1 Harper, Mrs. Henry Sleeper (Myna Haxtun) female 49.00 1 0 PC 17572 76.7292 D33 C D 33.0
453 454 1 1 Goldenberg, Mr. Samuel L male 49.00 1 0 17453 89.1042 C92 C C 92.0
599 600 1 1 Duff Gordon, Sir. Cosmo Edmund ("Mr Morgan") male 49.00 1 0 PC 17485 56.9292 A20 C A 20.0
660 661 1 1 Frauenthal, Dr. Henry William male 50.00 2 0 PC 17611 133.6500 NaN S NaN NaN
299 300 1 1 Baxter, Mrs. James (Helene DeLaudeniere Chaput) female 50.00 0 1 PC 17558 247.5208 B58 B60 C B 59.0
765 766 1 1 Hogeboom, Mrs. John C (Anna Andrews) female 51.00 1 0 13502 77.9583 D11 S D 11.0
857 858 1 1 Daly, Mr. Peter Denis male 51.00 0 0 113055 26.5500 E17 S E 17.0
820 821 1 1 Hays, Mrs. Charles Melville (Clara Jennings Gr... female 52.00 1 1 12749 93.5000 B69 S B 69.0
449 450 1 1 Peuchen, Major. Arthur Godfrey male 52.00 0 0 113786 30.5000 C104 S C 104.0
591 592 1 1 Stephenson, Mrs. Walter Bertram (Martha Eustis) female 52.00 1 0 36947 78.2667 D20 C D 20.0
571 572 1 1 Appleton, Mrs. Edward Dale (Charlotte Lamson) female 53.00 2 0 11769 51.4792 C101 S C 101.0
496 497 1 1 Eustis, Miss. Elizabeth Mussey female 54.00 1 0 36947 78.2667 D20 C D 20.0
513 514 1 1 Rothschild, Mrs. Martin (Elizabeth L. Barrett) female 54.00 1 0 PC 17603 59.4000 NaN C NaN NaN
647 648 1 1 Simonius-Blumer, Col. Oberst Alfons male 56.00 0 0 13213 35.5000 A26 C A 26.0
879 880 1 1 Potter, Mrs. Thomas Jr (Lily Alexenia Wilson) female 56.00 0 1 11767 83.1583 C50 C C 50.0
268 269 1 1 Graham, Mrs. William Thompson (Edith Junkins) female 58.00 0 1 PC 17582 153.4625 C125 S C 125.0
195 196 1 1 Lurette, Miss. Elise female 58.00 0 0 PC 17569 146.5208 B80 C B 80.0
11 12 1 1 Bonnell, Miss. Elizabeth female 58.00 0 0 113783 26.5500 C103 S C 103.0
587 588 1 1 Frolicher-Stehli, Mr. Maxmillian male 60.00 1 1 13567 79.2000 B41 C B 41.0
366 367 1 1 Warren, Mrs. Frank Manley (Anna Sophia Atkinson) female 60.00 1 0 110813 75.2500 D37 C D 37.0
829 830 1 1 Stone, Mrs. George Nelson (Martha Evelyn) female 62.00 0 0 113572 80.0000 B28 NaN B 28.0
275 276 1 1 Andrews, Miss. Kornelia Theodosia female 63.00 1 0 13502 77.9583 D7 S D 7.0
630 631 1 1 Barkworth, Mr. Algernon Henry Wilson male 80.00 0 0 27042 30.0000 A23 S A 23.0
31 32 1 1 Spencer, Mrs. William Augustus (Marie Eugenie) female NaN 1 0 PC 17569 146.5208 B78 C B 78.0
55 56 1 1 Woolner, Mr. Hugh male NaN 0 0 19947 35.5000 C52 S C 52.0
166 167 1 1 Chibnall, Mrs. (Edith Martha Bowerman) female NaN 0 1 113505 55.0000 E33 S E 33.0
256 257 1 1 Thorne, Mrs. Gertrude Maybelle female NaN 0 0 PC 17585 79.2000 NaN C NaN NaN
298 299 1 1 Saalfeld, Mr. Adolphe male NaN 0 0 19988 30.5000 C106 S C 106.0
306 307 1 1 Fleming, Miss. Margaret female NaN 0 0 17421 110.8833 NaN C NaN NaN
334 335 1 1 Frauenthal, Mrs. Henry William (Clara Heinshei... female NaN 1 0 PC 17611 133.6500 NaN S NaN NaN
375 376 1 1 Meyer, Mrs. Edgar Joseph (Leila Saks) female NaN 1 0 PC 17604 82.1708 NaN C NaN NaN
457 458 1 1 Kenyon, Mrs. Frederick R (Marion) female NaN 1 0 17464 51.8625 D21 S D 21.0
507 508 1 1 Bradley, Mr. George ("George Arthur Brayton") male NaN 0 0 111427 26.5500 NaN S NaN NaN
669 670 1 1 Taylor, Mrs. Elmer Zebley (Juliet Cummins Wright) female NaN 1 0 19996 52.0000 C126 S C 126.0
740 741 1 1 Hawksford, Mr. Walter James male NaN 0 0 16988 30.0000 D45 S D 45.0
839 840 1 1 Marechal, Mr. Pierre male NaN 0 0 11774 29.7000 C47 C C 47.0
849 850 1 1 Goldenberg, Mrs. Samuel L (Edwiga Grabowska) female NaN 1 0 17453 89.1042 C92 C C 92.0

Observations:

  • You do have a lower survival rate when you are in 3rd class.
  • But even in the third class, you still have a higher survival rate if you are a child age 5 or lower.

Does gender matter if you paid higher prices?¶

In [62]:
plt.figure(figsize = (20,7))
sns.swarmplot(titantrain, x='Sex', y='Fare', hue = 'Survived');

Observations:

  • The survival rate does increase with higher ticket fare in both male and female.
  • However, if a male passenger paid between 200 to 300 for the tickets, the survival rate is 0%
  • Those who paid more than 500 all survived.

Can we use anything to approximate the missing cabin numbers?¶

In [63]:
stacked_barplot(titantrain,'cabin_alphabet','Embarked')
Embarked         C  Q    S  All
cabin_alphabet                 
All             69  4  129  202
C               21  2   36   59
E                5  1   26   32
F                1  1   11   13
A                7  0    8   15
B               22  0   23   45
D               13  0   20   33
G                0  0    4    4
T                0  0    1    1
------------------------------------------------------------------------------------------------------------------------
In [64]:
stacked_barplot(titantrain,'cabin_alphabet','Pclass')
Pclass            1   2   3  All
cabin_alphabet                  
All             176  16  12  204
F                 0   8   5   13
D                29   4   0   33
E                25   4   3   32
A                15   0   0   15
B                47   0   0   47
C                59   0   0   59
G                 0   0   4    4
T                 1   0   0    1
------------------------------------------------------------------------------------------------------------------------
In [65]:
stacked_barplot(titantrain,'cabin_alphabet','Survived')
Survived         0    1  All
cabin_alphabet              
All             68  136  204
B               12   35   47
C               24   35   59
D                8   25   33
E                8   24   32
F                5    8   13
A                8    7   15
G                2    2    4
T                1    0    1
------------------------------------------------------------------------------------------------------------------------

Observations:

  • There are 10 times more 1st class passengers than 2nd or 3rd class passengers in the remaining data that still has cabin values. This is unrepresentative of the distribution of passengers across the classes.

Using Fare to estimate cabin

In [66]:
sns.jointplot(data = titantrain, x = 'cabin_numbers', y = 'Fare',hue = 'Survived')
Out[66]:
<seaborn.axisgrid.JointGrid at 0x7eaec5b6e8f0>
In [67]:
plt.figure(figsize = (15,7))
sns.swarmplot(data = titantrain, x = 'cabin_alphabet', y = 'Fare', hue = 'Survived')
Out[67]:
<Axes: xlabel='cabin_alphabet', ylabel='Fare'>

Conclusion:

  • Because the remaining data from cabin is so scarce, it is very difficult to substitute the data.
  • It can be seen that Fare is a much better estimate for survival rate than the cabin number or letter. For example, cabin B and C have much higher survival rate, but their prices extends to a higher range.
  • As cabin also has a very high amount of missing value in the test data, it could be wiser to just drop this column.

Feature Engineering¶

Family Size¶

Since the idea of having children, spouse, parents or child are quite similar, we can combine these features into one feature where we count the size of the family.

In [68]:
titantrain['family'] = titantrain['SibSp'] + titantrain['Parch'] + 1
In [69]:
titantrain['family'].value_counts()
Out[69]:
family
1     537
2     161
3     102
4      29
6      22
5      15
7      12
11      7
8       6
Name: count, dtype: int64

wait there are some crazy high numbers, lets take a look at what they are

In [70]:
titantrain.loc[titantrain['family']> 8]
Out[70]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked cabin_alphabet cabin_numbers family
159 160 0 3 Sage, Master. Thomas Henry male NaN 8 2 CA. 2343 69.55 NaN S NaN NaN 11
180 181 0 3 Sage, Miss. Constance Gladys female NaN 8 2 CA. 2343 69.55 NaN S NaN NaN 11
201 202 0 3 Sage, Mr. Frederick male NaN 8 2 CA. 2343 69.55 NaN S NaN NaN 11
324 325 0 3 Sage, Mr. George John Jr male NaN 8 2 CA. 2343 69.55 NaN S NaN NaN 11
792 793 0 3 Sage, Miss. Stella Anna female NaN 8 2 CA. 2343 69.55 NaN S NaN NaN 11
846 847 0 3 Sage, Mr. Douglas Bullen male NaN 8 2 CA. 2343 69.55 NaN S NaN NaN 11
863 864 0 3 Sage, Miss. Dorothy Edith "Dolly" female NaN 8 2 CA. 2343 69.55 NaN S NaN NaN 11

Okay, they are just one big family, with 2 parents and 8 siblings. Nothing out of ordinary

In [71]:
labeled_countplot(titantrain,'family')
In [72]:
sns.countplot(data = titantrain, x = 'family', hue = 'Survived')
Out[72]:
<Axes: xlabel='family', ylabel='count'>

Observations:

  • The distribution of the family size is skewed towards the right.
  • Seems like passengers who are travelling solo has quite low survival rate as compared to the passengers with 2 to 4 family members.
  • With a family size of 5 and above, the survival rate plummets.

Ticketing Alphabet, Numbers and Length¶

Let's break down the tickets into ticket number, alphabets and length to understand more about the ticketing system

In [73]:
# Extract alphabets from Ticket and categorize them into single alphabets
titantrain['ticket_alphabet'] = titantrain['Ticket'].str.extractall(r'([A-Za-z]+)').groupby(level=0)[0].apply(lambda x: ','.join(x))
titantrain['ticket_alphabet'] = titantrain['ticket_alphabet'].str.split(',').str[0]

#Extract numbers from Ticket and obtaining the ticket number of the passengers with multiple rooms
titantrain['ticket_numbers'] = titantrain['Ticket'].str.extractall(r'(\d+)').groupby(level=0).agg(lambda x: x.iloc[-1]) #Some ticket numbers have multiple segments of numerical values due to the alphabet portion. So we take only the last segment.
titantrain['ticket_numbers'] = titantrain['ticket_numbers'].apply(lambda x: int(x) if pd.notnull(x) else 0)

#Extract the length of the ticket number
titantrain['ticket_length'] = titantrain['ticket_numbers'].apply(lambda x:len(str(x)) if pd.notnull(x) else 0)

Ticket Alphabet¶

In [74]:
#Seeing what the alphabets look like
titantrain['ticket_alphabet'].value_counts()
Out[74]:
ticket_alphabet
PC       60
C        33
A        29
STON     18
SOTON    17
S        14
CA       14
SC       13
W        11
F         6
LINE      4
PP        3
P         2
WE        2
SO        1
Fa        1
SW        1
SCO       1
Name: count, dtype: int64
In [75]:
#Seeing if the alphabets is related to the source of embarkation
titantrain.groupby(['Embarked'])['ticket_alphabet'].value_counts()
Out[75]:
Embarked  ticket_alphabet
C         PC                 46
          SC                 11
          P                   2
          S                   2
Q         A                   1
S         C                  33
          A                  28
          STON               18
          SOTON              17
          PC                 14
          CA                 14
          S                  12
          W                  11
          F                   6
          LINE                4
          PP                  3
          SC                  2
          WE                  2
          SCO                 1
          SO                  1
          Fa                  1
          SW                  1
Name: count, dtype: int64

Observations:

  • Seems like PC could be Port Cherbourg, as majority of tickets that embarked from Cherbourg has PC on it. However, we can see that some of the tickets from Southampton also has PC.
  • There are also many letters in each embarkation location that has no strong pattern that can be useful for us.
  • This feature can be dropped out

Ticket Numbers¶

In [76]:
titantrain['ticket_numbers'].value_counts().sort_index(ascending = False)
Out[76]:
ticket_numbers
3101317    1
3101316    1
3101312    1
3101311    1
3101310    1
          ..
695        1
693        1
541        1
3          2
0          4
Name: count, Length: 679, dtype: int64
In [77]:
sns.histplot(data = titantrain, x = 'ticket_numbers', hue = 'Survived')
Out[77]:
<Axes: xlabel='ticket_numbers', ylabel='Count'>

Observations:

  • Chance of surviving is higher at lower numbers?!
  • There are like 3 groups of ticket numbers allocated, one is smaller than 200,000, other is from 200,000 to 400,000, then the last group is larger than 3,000,000.

Ticket Length¶

In [78]:
titantrain.sort_values(by = 'ticket_length')
Out[78]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked cabin_alphabet cabin_numbers family ticket_alphabet ticket_numbers ticket_length
597 598 0 3 Johnson, Mr. Alfred male 49.0 0 0 LINE 0.0000 NaN S NaN NaN 1 LINE 0 1
772 773 0 2 Mack, Mrs. (Mary) female 57.0 0 0 S.O./P.P. 3 10.5000 E77 S E 77.0 1 S 3 1
271 272 1 3 Tornquist, Mr. William Henry male 25.0 0 0 LINE 0.0000 NaN S NaN NaN 1 LINE 0 1
179 180 0 3 Leonard, Mr. Lionel male 36.0 0 0 LINE 0.0000 NaN S NaN NaN 1 LINE 0 1
302 303 0 3 Johnson, Mr. William Cahoone Jr male 19.0 0 0 LINE 0.0000 NaN S NaN NaN 1 LINE 0 1
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
142 143 1 3 Hakkarainen, Mrs. Pekka Pietari (Elin Matilda ... female 24.0 1 0 STON/O2. 3101279 15.8500 NaN S NaN NaN 2 STON 3101279 7
590 591 0 3 Rintamaki, Mr. Matti male 35.0 0 0 STON/O 2. 3101273 7.1250 NaN S NaN NaN 1 STON 3101273 7
371 372 0 3 Wiklund, Mr. Jakob Alfred male 18.0 1 0 3101267 6.4958 NaN S NaN NaN 2 NaN 3101267 7
729 730 0 3 Ilmakangas, Miss. Pieta Sofia female 25.0 1 0 STON/O2. 3101271 7.9250 NaN S NaN NaN 2 STON 3101271 7
164 165 0 3 Panula, Master. Eino Viljami male 1.0 4 1 3101295 39.6875 NaN S NaN NaN 6 NaN 3101295 7

891 rows × 18 columns

In [79]:
sns.kdeplot(data = titantrain, x = 'ticket_length', hue = 'Survived', shade = True)
Out[79]:
<Axes: xlabel='ticket_length', ylabel='Density'>
In [80]:
sns.kdeplot(data = titantrain, x = 'ticket_length', hue = 'Pclass', palette = 'bright', shade = True)
Out[80]:
<Axes: xlabel='ticket_length', ylabel='Density'>
In [81]:
#Converting the datatype into categorical
titantrain['ticket_length'] = titantrain['ticket_length'].astype('object')

Observations:

  • it is intersting to see that at a ticket length of 5, you have a higher chance to survive.
  • It seems that many of the tickets with length of 5 belongs to the upper class
  • As the length of the ticket number is not considered a continuous variable, this variable was converted into an object datatype

Data Pre-Processing¶

Null Value Treatment¶

Estimate Free Tickets¶

In [82]:
# The class distribution of the free tickets
freetix = titantrain.loc[titantrain['Fare'] == 0]
freetix['Pclass'].value_counts()
Out[82]:
Pclass
2    6
1    5
3    4
Name: count, dtype: int64
In [83]:
#Seeing if Fare is affected by the class
sns.boxplot(data = titantrain, x = 'Pclass', y = 'Fare')
Out[83]:
<Axes: xlabel='Pclass', ylabel='Fare'>
In [84]:
#Seeing if fare or age is affected by age
sns.scatterplot(data= titantrain, x = 'Age', y = 'Fare', hue = 'Sex')
Out[84]:
<Axes: xlabel='Age', ylabel='Fare'>

Observations:

  • It seems that Age or Sex does not affect fare.
  • The class is a good estimator for the fare price. We can substitute all free tickets with the class specific medians.

As there are presence of very expensive tickets, using median might be more accurate.

In [85]:
#Obtain the median values of each group
medians = titantrain.groupby(['Pclass'])['Fare'].median()

#Let's see what the median values are
print(medians)
Pclass
1    60.2875
2    14.2500
3     8.0500
Name: Fare, dtype: float64
In [86]:
#Assign each median value into each group
median1 = medians.get(1)
median2 = medians.get(2)
median3 = medians.get(3)

#Replace the free tickets' prices with group specific medians
titantrain.loc[(titantrain['Pclass'] == 1) & (titantrain['Fare'] == 0), 'Fare'] = median1
titantrain.loc[(titantrain['Pclass'] == 2) & (titantrain['Fare'] == 0), 'Fare'] = median2
titantrain.loc[(titantrain['Pclass'] == 3) & (titantrain['Fare'] == 0), 'Fare'] = median3

Embark¶

Since there are only 2 null values in 'Embarked' (0.22% of data), we can take a look at these data and see if there are any important trends

In [87]:
#Having a look at the null embarked passengers
no_embarked = titantrain.loc[titantrain['Embarked'].isnull()]
no_embarked
Out[87]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked cabin_alphabet cabin_numbers family ticket_alphabet ticket_numbers ticket_length
61 62 1 1 Icard, Miss. Amelie female 38.0 0 0 113572 80.0 B28 NaN B 28.0 1 NaN 113572 6
829 830 1 1 Stone, Mrs. George Nelson (Martha Evelyn) female 62.0 0 0 113572 80.0 B28 NaN B 28.0 1 NaN 113572 6
In [88]:
#Checking if there are other passengers staying in the same cabin
titantrain.loc[titantrain['Cabin'] == 'B28']
Out[88]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked cabin_alphabet cabin_numbers family ticket_alphabet ticket_numbers ticket_length
61 62 1 1 Icard, Miss. Amelie female 38.0 0 0 113572 80.0 B28 NaN B 28.0 1 NaN 113572 6
829 830 1 1 Stone, Mrs. George Nelson (Martha Evelyn) female 62.0 0 0 113572 80.0 B28 NaN B 28.0 1 NaN 113572 6

Observations:

  • These passengers are both from class 1.
  • Both passengers survived.
  • Both passengers are travelling by themselves.
  • Both paid the same fare of 80
  • There are no other passengers sharing th same cabin.
  • Both are also

Although they can be easily substituted with the median value, I just wanted to make sure that they are not any special cases that can contribute to the model building.

In [89]:
#Simplest way is to substitute the null values with the median location
titantrain['Embarked'].value_counts().sort_values(ascending = False)
Out[89]:
Embarked
S    644
C    168
Q     77
Name: count, dtype: int64
In [90]:
#Making sure that it is not rare for class 1 passengers to survive
titantrain.groupby(['Pclass'])['Survived'].value_counts()
Out[90]:
Pclass  Survived
1       1           136
        0            80
2       0            97
        1            87
3       0           372
        1           119
Name: count, dtype: int64
In [91]:
#Making sure that their age is not rare for someone who survived.
titantrain.groupby(['Survived'])['Age'].mean()
Out[91]:
Survived
0    30.626179
1    28.343690
Name: Age, dtype: float64
In [92]:
titantrain.groupby(['Pclass'])['Embarked'].value_counts()
Out[92]:
Pclass  Embarked
1       S           127
        C            85
        Q             2
2       S           164
        C            17
        Q             3
3       S           353
        Q            72
        C            66
Name: count, dtype: int64

Observations:

  • The median 'embarked' value is S
  • One of the passengers is aged 62, much higher than the average age of the survivors.
  • Since they are both from the first class, there's a high likelihood that they embarked from Southampton.
In [93]:
#Substituted the null values with S for SOuthampton
titantrain.loc[titantrain['Embarked'].isna(),'Embarked'] = 'S'

#Check if the null values were substituted
print("There are",titantrain['Embarked'].isnull().sum(),"null values in Embarked")
There are 0 null values in Embarked

Age¶

As there is a significant number of null values in 'Age', it will be good to identify trends that leads to these values being null. We will then be able to substitute the null values more accurately instead of removing or blindly substituting the data.

Factors to consider:

  • Pclass - It seems that in class 3, children below the age of 6 have a higher chance of survival. In class 2, below age of 15 has higher chance of survival. In class 1, the age doesn't seem to affect survivability. But it seems like there are very little children in class 1.
  • Survived - Most children age 5 or below have a very high survivability. This is even more obvious when you are a 3rd class passenger.

Here are the conditions we will use to substitute the missing ages:

  • If the passenger is from class 2 and survived, age 7
  • If the passenger is from class 3 and survived, age 2.5
  • Every other passenger can be substituted with the median age.
In [94]:
#See what is the distribution of across the different combination of class and survival status
no_age = titantrain.loc[titantrain['Age'].isnull()]
no_age.groupby(['Pclass'])['Survived'].value_counts()
Out[94]:
Pclass  Survived
1       0            16
        1            14
2       0             7
        1             4
3       0           102
        1            34
Name: count, dtype: int64
In [95]:
#Defining the values to be substituted according to the conditions
child2 = 14/2 # Class 2 childrens
child3 = 5/2 # Class 3 Childrens' age
median_age = titantrain['Age'].median() # The rest of the passengers with no age

# Substitution of null ages
titantrain.loc[(titantrain['Pclass']) == 3 & (titantrain['Survived'] == 1) & (titantrain['Age'].isnull()), 'Age'] = child3
titantrain.loc[(titantrain['Pclass']) == 2 & (titantrain['Survived'] == 1) & (titantrain['Age'].isnull()), 'Age'] = child2
titantrain.loc[titantrain['Age'].isnull(), 'Age'] = median_age
In [96]:
#Checking if there are still any null values in Age
titantrain['Age'].isnull().sum()
Out[96]:
0

Cabin¶

As we have uncovered that cabin is not representative of the population, and there were no other clues we can use to estimate the values, we have decided to drop the column all together.

Dependent and Independent Variables of Interest¶

In [97]:
titantrain.head(1)
Out[97]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked cabin_alphabet cabin_numbers family ticket_alphabet ticket_numbers ticket_length
0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.25 NaN S NaN NaN 2 A 21171 5
In [98]:
#Dependent Variable of interest
y = titantrain['Survived']

#Independent variables
features = ['Pclass',
            'Sex',
            'Age',
            'Fare',
            'Embarked',
            'family',
            'ticket_numbers',
            'ticket_length']

x = titantrain[features]
x.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 8 columns):
 #   Column          Non-Null Count  Dtype  
---  ------          --------------  -----  
 0   Pclass          891 non-null    object 
 1   Sex             891 non-null    object 
 2   Age             891 non-null    float64
 3   Fare            891 non-null    float64
 4   Embarked        891 non-null    object 
 5   family          891 non-null    int64  
 6   ticket_numbers  891 non-null    int64  
 7   ticket_length   891 non-null    object 
dtypes: float64(2), int64(2), object(4)
memory usage: 55.8+ KB

Encoding Categorical Variables¶

In [99]:
#Performing one-hot encoding for the categorical variables
x = pd.get_dummies(x,
                   columns = x.select_dtypes(include = ["object","category"]).columns.tolist(),
                   drop_first = True, dtype = int)
In [100]:
x.head(1)
Out[100]:
Age Fare family ticket_numbers Pclass_2 Pclass_3 Sex_male Embarked_Q Embarked_S ticket_length_3 ticket_length_4 ticket_length_5 ticket_length_6 ticket_length_7
0 22.0 7.25 2 21171 0 1 1 0 1 0 0 1 0 0

Split and Scale Data¶

In [101]:
# Splitting the dataset into train and test datasets
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, shuffle = True, random_state = 1)
In [102]:
print("Shape of Training set : ", x_train.shape)
print("Shape of test set : ", x_test.shape)
Shape of Training set :  (712, 14)
Shape of test set :  (179, 14)
In [103]:
# Scaling the data
sc=StandardScaler()

# Fit_transform on train data
x_train_scaled=sc.fit_transform(x_train)
x_train_scaled=pd.DataFrame(x_train_scaled, columns=x.columns)

# Transform on test data
x_test_scaled=sc.transform(x_test)
x_test_scaled=pd.DataFrame(x_test_scaled, columns=x.columns)

Pre-processing Test Data¶

In [104]:
titantest.head()
Out[104]:
PassengerId Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
0 892 3 Kelly, Mr. James male 34.5 0 0 330911 7.8292 NaN Q
1 893 3 Wilkes, Mrs. James (Ellen Needs) female 47.0 1 0 363272 7.0000 NaN S
2 894 2 Myles, Mr. Thomas Francis male 62.0 0 0 240276 9.6875 NaN Q
3 895 3 Wirz, Mr. Albert male 27.0 0 0 315154 8.6625 NaN S
4 896 3 Hirvonen, Mrs. Alexander (Helga E Lindqvist) female 22.0 1 1 3101298 12.2875 NaN S

Feature Engineering and Null Value Treatment¶

In [105]:
## Changing datatypes
titantest['Pclass'] = titantest['Pclass'].astype('object')

## Free Tickets
#Replace the free and null tickets' prices with group specific medians
titantest.loc[(titantest['Pclass'] == 1) & ((titantest['Fare'] == 0) | (titantest['Fare'].isna())), 'Fare'] = median1
titantest.loc[(titantest['Pclass'] == 2) & ((titantest['Fare'] == 0) | (titantest['Fare'].isna())), 'Fare'] = median2
titantest.loc[(titantest['Pclass'] == 3) & ((titantest['Fare'] == 0) | (titantest['Fare'].isna())), 'Fare'] = median3

print('Free Tickets Substituted with class specific medians')

## Null Age

#Defining the values to be substituted according to the conditions
child2 = 14/2 # Class 2 childrens' age
child3 = 5/2 # Class 3 Childrens' age
median_age = titantest['Age'].median() # The rest of the passengers with no age

# Substitution of null ages
titantest.loc[(titantest['Pclass']) == 3 & (titantest['Age'].isnull()), 'Age'] = child3
titantest.loc[(titantest['Pclass']) == 2 & (titantest['Age'].isnull()), 'Age'] = child2
titantest.loc[titantest['Age'].isnull(), 'Age'] = median_age
print('Null ages substituted with class specific median age')

## Null Embarked values with Southampton

#Substituted the null values with S for Southampton
titantest.loc[titantest['Embarked'].isna(),'Embarked'] = 'S'

#Check if the null values were substituted
print("Null Embarked values substituted with Southampton")

## Ticket Feature Engineering

# Extract alphabets from Ticket and categorize them into single alphabets
titantest['ticket_alphabet'] = titantest['Ticket'].str.extractall(r'([A-Za-z]+)').groupby(level=0)[0].apply(lambda x: ','.join(x))
titantest['ticket_alphabet'] = titantest['ticket_alphabet'].str.split(',').str[0]

#Extract numbers from Ticket and obtaining the ticket number of the passengers with multiple rooms
titantest['ticket_numbers'] = titantest['Ticket'].str.extractall(r'(\d+)').groupby(level=0).agg(lambda x: x.iloc[-1])
titantest['ticket_numbers'] = titantest['ticket_numbers'].apply(lambda x: int(x) if pd.notnull(x) else 0)

#Extract the length of the ticket number
titantest['ticket_length'] = titantest['ticket_numbers'].apply(lambda x:len(str(x)) if pd.notnull(x) else 0)

#Converting the ticket_length datatype into categorical
titantest['ticket_length'] = titantest['ticket_length'].astype('object')

print('Ticket information split into alphabets, numbers and length')

## Family Size

titantest['family'] = titantest['SibSp'] + titantest['Parch'] + 1
print('sibsp and parch combined into family size')
Free Tickets Substituted with class specific medians
Null ages substituted with class specific median age
Null Embarked values substituted with Southampton
Ticket information split into alphabets, numbers and length
sibsp and parch combined into family size
In [106]:
test_x = titantest[features]

#Double check test data, see if there are still null values
test_x.isna().sum()
Out[106]:
Pclass            0
Sex               0
Age               0
Fare              0
Embarked          0
family            0
ticket_numbers    0
ticket_length     0
dtype: int64

One-hot Encoding¶

In [107]:
#Performing one-hot encoding for the categorical variables
test_x = pd.get_dummies(test_x,
                        columns = test_x.select_dtypes(include = ["object","category"]).columns.tolist(),
                        drop_first = True)
In [108]:
test_x.shape
Out[108]:
(418, 14)

Scale Data¶

In [109]:
# Scaling the data
sc=StandardScaler()

#Scale the data
test_x_scaled=sc.fit_transform(test_x)
test_x_scaled=pd.DataFrame(test_x_scaled, columns=test_x.columns)
In [110]:
#Label the data with the respective ID
test_x_scaled = test_x_scaled.join(titantest['PassengerId'])

#Print out to see what the scaled data look like
test_x_scaled
Out[110]:
Age Fare family ticket_numbers Pclass_2 Pclass_3 Sex_male Embarked_Q Embarked_S ticket_length_3 ticket_length_4 ticket_length_5 ticket_length_6 ticket_length_7 PassengerId
0 0.408718 -0.502509 -0.553443 0.132042 -0.534933 0.957826 0.755929 2.843757 -1.350676 -0.120678 -0.486504 -0.675608 1.133205 -0.199502 892
1 1.349905 -0.517379 0.105643 0.187173 -0.534933 0.957826 -1.322876 -0.351647 0.740370 -0.120678 -0.486504 -0.675608 1.133205 -0.199502 893
2 2.479329 -0.469183 -0.553443 -0.022366 1.869391 -1.044031 0.755929 2.843757 -1.350676 -0.120678 -0.486504 -0.675608 1.133205 -0.199502 894
3 -0.155994 -0.487565 -0.553443 0.105198 -0.534933 0.957826 0.755929 -0.351647 0.740370 -0.120678 -0.486504 -0.675608 1.133205 -0.199502 895
4 -0.532469 -0.422555 0.764728 4.851741 -0.534933 0.957826 -1.322876 -0.351647 0.740370 -0.120678 -0.486504 -0.675608 -0.882453 5.012484 896
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
413 -0.155994 -0.498549 -0.553443 -0.426193 -0.534933 0.957826 0.755929 -0.351647 0.740370 -0.120678 2.055480 -0.675608 -0.882453 -0.199502 1305
414 0.747545 1.310057 -0.553443 -0.401453 -0.534933 -1.044031 -1.322876 -0.351647 -1.350676 -0.120678 -0.486504 1.480149 -0.882453 -0.199502 1306
415 0.709898 -0.512896 -0.553443 4.851679 -0.534933 0.957826 0.755929 -0.351647 0.740370 -0.120678 -0.486504 -0.675608 -0.882453 5.012484 1307
416 -0.155994 -0.498549 -0.553443 0.180422 -0.534933 0.957826 0.755929 -0.351647 0.740370 -0.120678 -0.486504 -0.675608 1.133205 -0.199502 1308
417 -0.155994 -0.241949 0.764728 -0.427161 -0.534933 0.957826 0.755929 -0.351647 -1.350676 -0.120678 2.055480 -0.675608 -0.882453 -0.199502 1309

418 rows × 15 columns

Deep Learning Models¶

Metric Functions¶

In [111]:
# Creating metric function for Classifiers
def metrics_score(actual, predicted):
    print(classification_report(actual, predicted))

    cm = confusion_matrix(actual, predicted)
    plt.figure(figsize=(8,5))

    #In this heatmap, make sure the xticklabels are labelled correctly in the format [label if prediction is 0, label if prediction is 1]. In this case, 1 means Satisfied, and 0 means Not Satisfied.
    sns.heatmap(cm, annot=True,  fmt='.2f', xticklabels=['Died', 'Survived'], yticklabels=['Died', 'Survived'])
    plt.ylabel('Actual')
    plt.xlabel('Predicted')
    plt.show()

Basic Model: Adamax, Relu, Single Hidden Layer¶

Build Model¶

In [7]:
# Fixing the seed for random number generators
np.random.seed(42)

import random
random.seed(42)

tf.random.set_seed(42)
In [8]:
# Initialize sequential model
# model_1 = tf.keras.Sequential([tf.keras.layers.Flatten(input_shape=(14,)),#Input layer, 14 parameters
#                                tf.keras.layers.Dense(64, activation='relu'), #Hidden layer
#                                tf.keras.layers.Dense(1, activation='sigmoid')]) #Output layer, only 1 node because we only have 1 result to predict

# Initializing the ANN
model_1 = Sequential()
model_1.add(Dense(activation = 'relu', input_dim = 14, units=64))
model_1.add(Dense(1, activation = 'sigmoid'))
In [9]:
#Using the settings for the sequential model above, create the model with the following algorithms
model_1.compile(loss = 'binary_crossentropy',
                optimizer='adam',
                metrics=['accuracy'])

#Show the model summary
model_1.summary()
Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 dense (Dense)               (None, 64)                960       
                                                                 
 dense_1 (Dense)             (None, 1)                 65        
                                                                 
=================================================================
Total params: 1,025
Trainable params: 1,025
Non-trainable params: 0
_________________________________________________________________
In [112]:
# Let us now fit the model onto our data
history1 = model_1.fit(x_train_scaled,
                          y_train,
                          validation_split=0.2, #20% for validation data
                          verbose=1, #It writes the verbiage for the training progress. A higher number would give more information
                          epochs=50, #Number of times the model goes through the entire training dataset
                          batch_size=32) #This is the batch Stochastic Gradient Descend method, with batchsize per training step
Epoch 1/50
18/18 [==============================] - 3s 43ms/step - loss: 0.6525 - accuracy: 0.6309 - val_loss: 0.6388 - val_accuracy: 0.6573
Epoch 2/50
18/18 [==============================] - 0s 13ms/step - loss: 0.5712 - accuracy: 0.7417 - val_loss: 0.5693 - val_accuracy: 0.6713
Epoch 3/50
18/18 [==============================] - 0s 9ms/step - loss: 0.5204 - accuracy: 0.7979 - val_loss: 0.5232 - val_accuracy: 0.7692
Epoch 4/50
18/18 [==============================] - 0s 13ms/step - loss: 0.4865 - accuracy: 0.8260 - val_loss: 0.4911 - val_accuracy: 0.7832
Epoch 5/50
18/18 [==============================] - 0s 17ms/step - loss: 0.4629 - accuracy: 0.8330 - val_loss: 0.4686 - val_accuracy: 0.7902
Epoch 6/50
18/18 [==============================] - 1s 43ms/step - loss: 0.4447 - accuracy: 0.8366 - val_loss: 0.4535 - val_accuracy: 0.7972
Epoch 7/50
18/18 [==============================] - 1s 35ms/step - loss: 0.4307 - accuracy: 0.8383 - val_loss: 0.4429 - val_accuracy: 0.7972
Epoch 8/50
18/18 [==============================] - 1s 35ms/step - loss: 0.4205 - accuracy: 0.8383 - val_loss: 0.4341 - val_accuracy: 0.8042
Epoch 9/50
18/18 [==============================] - 0s 24ms/step - loss: 0.4126 - accuracy: 0.8401 - val_loss: 0.4305 - val_accuracy: 0.8042
Epoch 10/50
18/18 [==============================] - 1s 40ms/step - loss: 0.4059 - accuracy: 0.8436 - val_loss: 0.4251 - val_accuracy: 0.8252
Epoch 11/50
18/18 [==============================] - 1s 41ms/step - loss: 0.4008 - accuracy: 0.8471 - val_loss: 0.4211 - val_accuracy: 0.8252
Epoch 12/50
18/18 [==============================] - 0s 19ms/step - loss: 0.3959 - accuracy: 0.8489 - val_loss: 0.4195 - val_accuracy: 0.8252
Epoch 13/50
18/18 [==============================] - 0s 17ms/step - loss: 0.3921 - accuracy: 0.8453 - val_loss: 0.4174 - val_accuracy: 0.8322
Epoch 14/50
18/18 [==============================] - 0s 9ms/step - loss: 0.3892 - accuracy: 0.8471 - val_loss: 0.4159 - val_accuracy: 0.8322
Epoch 15/50
18/18 [==============================] - 0s 9ms/step - loss: 0.3870 - accuracy: 0.8489 - val_loss: 0.4149 - val_accuracy: 0.8322
Epoch 16/50
18/18 [==============================] - 0s 8ms/step - loss: 0.3836 - accuracy: 0.8524 - val_loss: 0.4154 - val_accuracy: 0.8322
Epoch 17/50
18/18 [==============================] - 0s 13ms/step - loss: 0.3820 - accuracy: 0.8489 - val_loss: 0.4130 - val_accuracy: 0.8252
Epoch 18/50
18/18 [==============================] - 0s 8ms/step - loss: 0.3796 - accuracy: 0.8524 - val_loss: 0.4128 - val_accuracy: 0.8322
Epoch 19/50
18/18 [==============================] - 0s 14ms/step - loss: 0.3773 - accuracy: 0.8524 - val_loss: 0.4132 - val_accuracy: 0.8322
Epoch 20/50
18/18 [==============================] - 0s 10ms/step - loss: 0.3756 - accuracy: 0.8489 - val_loss: 0.4130 - val_accuracy: 0.8322
Epoch 21/50
18/18 [==============================] - 0s 10ms/step - loss: 0.3741 - accuracy: 0.8524 - val_loss: 0.4135 - val_accuracy: 0.8322
Epoch 22/50
18/18 [==============================] - 0s 11ms/step - loss: 0.3733 - accuracy: 0.8524 - val_loss: 0.4089 - val_accuracy: 0.8322
Epoch 23/50
18/18 [==============================] - 0s 16ms/step - loss: 0.3714 - accuracy: 0.8524 - val_loss: 0.4090 - val_accuracy: 0.8322
Epoch 24/50
18/18 [==============================] - 0s 15ms/step - loss: 0.3706 - accuracy: 0.8524 - val_loss: 0.4101 - val_accuracy: 0.8392
Epoch 25/50
18/18 [==============================] - 0s 11ms/step - loss: 0.3689 - accuracy: 0.8489 - val_loss: 0.4100 - val_accuracy: 0.8322
Epoch 26/50
18/18 [==============================] - 0s 9ms/step - loss: 0.3681 - accuracy: 0.8524 - val_loss: 0.4105 - val_accuracy: 0.8322
Epoch 27/50
18/18 [==============================] - 0s 10ms/step - loss: 0.3662 - accuracy: 0.8541 - val_loss: 0.4102 - val_accuracy: 0.8322
Epoch 28/50
18/18 [==============================] - 0s 16ms/step - loss: 0.3652 - accuracy: 0.8506 - val_loss: 0.4096 - val_accuracy: 0.8322
Epoch 29/50
18/18 [==============================] - 0s 10ms/step - loss: 0.3649 - accuracy: 0.8489 - val_loss: 0.4078 - val_accuracy: 0.8392
Epoch 30/50
18/18 [==============================] - 0s 8ms/step - loss: 0.3638 - accuracy: 0.8489 - val_loss: 0.4076 - val_accuracy: 0.8392
Epoch 31/50
18/18 [==============================] - 0s 8ms/step - loss: 0.3633 - accuracy: 0.8524 - val_loss: 0.4078 - val_accuracy: 0.8392
Epoch 32/50
18/18 [==============================] - 0s 7ms/step - loss: 0.3612 - accuracy: 0.8541 - val_loss: 0.4100 - val_accuracy: 0.8462
Epoch 33/50
18/18 [==============================] - 0s 7ms/step - loss: 0.3608 - accuracy: 0.8489 - val_loss: 0.4089 - val_accuracy: 0.8462
Epoch 34/50
18/18 [==============================] - 0s 6ms/step - loss: 0.3602 - accuracy: 0.8506 - val_loss: 0.4115 - val_accuracy: 0.8392
Epoch 35/50
18/18 [==============================] - 0s 8ms/step - loss: 0.3594 - accuracy: 0.8524 - val_loss: 0.4075 - val_accuracy: 0.8462
Epoch 36/50
18/18 [==============================] - 0s 7ms/step - loss: 0.3585 - accuracy: 0.8506 - val_loss: 0.4091 - val_accuracy: 0.8462
Epoch 37/50
18/18 [==============================] - 0s 6ms/step - loss: 0.3572 - accuracy: 0.8524 - val_loss: 0.4084 - val_accuracy: 0.8462
Epoch 38/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3572 - accuracy: 0.8541 - val_loss: 0.4072 - val_accuracy: 0.8462
Epoch 39/50
18/18 [==============================] - 0s 7ms/step - loss: 0.3560 - accuracy: 0.8541 - val_loss: 0.4087 - val_accuracy: 0.8462
Epoch 40/50
18/18 [==============================] - 0s 8ms/step - loss: 0.3556 - accuracy: 0.8524 - val_loss: 0.4088 - val_accuracy: 0.8462
Epoch 41/50
18/18 [==============================] - 0s 6ms/step - loss: 0.3541 - accuracy: 0.8524 - val_loss: 0.4089 - val_accuracy: 0.8462
Epoch 42/50
18/18 [==============================] - 0s 7ms/step - loss: 0.3543 - accuracy: 0.8524 - val_loss: 0.4086 - val_accuracy: 0.8462
Epoch 43/50
18/18 [==============================] - 0s 8ms/step - loss: 0.3539 - accuracy: 0.8559 - val_loss: 0.4086 - val_accuracy: 0.8462
Epoch 44/50
18/18 [==============================] - 0s 6ms/step - loss: 0.3529 - accuracy: 0.8524 - val_loss: 0.4096 - val_accuracy: 0.8462
Epoch 45/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3531 - accuracy: 0.8559 - val_loss: 0.4093 - val_accuracy: 0.8462
Epoch 46/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3532 - accuracy: 0.8559 - val_loss: 0.4121 - val_accuracy: 0.8392
Epoch 47/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3509 - accuracy: 0.8576 - val_loss: 0.4083 - val_accuracy: 0.8462
Epoch 48/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3509 - accuracy: 0.8559 - val_loss: 0.4093 - val_accuracy: 0.8462
Epoch 49/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3504 - accuracy: 0.8594 - val_loss: 0.4086 - val_accuracy: 0.8462
Epoch 50/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3494 - accuracy: 0.8559 - val_loss: 0.4115 - val_accuracy: 0.8252

Model Accuracy and Loss with Epochs¶

In [113]:
#Plotting Train Loss vs Validation Loss
plt.plot(history1.history['loss'])
plt.plot(history1.history['val_loss'])
plt.title('model loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend(['train', 'validation'], loc='upper left')
plt.show()
In [114]:
#Plotting Epoch vs accuracy
plt.plot(history1.history['accuracy'])
plt.plot(history1.history['val_accuracy'])

plt.title('Accuracy vs Epochs')
plt.ylabel('Accuracy')
plt.xlabel('Epoch')
plt.legend(['Train', 'Validation'], loc='lower right')
plt.show()

Observations:

  • The accuracy of the model on validation dataset plateaus at around 20 Epochs, showing signs of dying Relu problem.
  • Model accuracy on trainign data continues to increase with higher epoch, showing signs of overfitting.
  • The gradient of the accuracy is janky, perhaps the learning rate is too high, leading to oscillations like this

Model Performance on Training Data¶

In [115]:
# Using the model to make predictiosn on the training data
y_train_pred = model_1.predict(x_train_scaled)

#Set the threshold of classification to be 0.5
y_train_pred = (y_train_pred > 0.5)

#See what the data looks like
y_train_pred
23/23 [==============================] - 0s 2ms/step
Out[115]:
array([[False],
       [ True],
       [ True],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [ True],
       [ True],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [ True],
       [ True],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [ True],
       [ True],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [ True],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [ True],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [ True],
       [ True],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [ True],
       [ True],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [ True],
       [ True],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [ True],
       [ True],
       [False],
       [ True],
       [ True],
       [ True],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [ True],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [ True],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [False],
       [ True],
       [False],
       [False],
       [False]])
In [116]:
metrics_score(y_train,y_train_pred)
              precision    recall  f1-score   support

           0       0.84      0.94      0.89       443
           1       0.88      0.71      0.79       269

    accuracy                           0.85       712
   macro avg       0.86      0.83      0.84       712
weighted avg       0.86      0.85      0.85       712

Model Performance on Validation Data¶

In [117]:
#Making prediction using the model on the validation data to peformance metric.
y_pred=model_1.predict(x_test_scaled)

#Set the threshold of classification to be 0.5
y_pred = (y_pred > 0.5)
6/6 [==============================] - 0s 3ms/step
In [118]:
metrics_score(y_test,y_pred)
              precision    recall  f1-score   support

           0       0.78      0.93      0.85       106
           1       0.87      0.62      0.72        73

    accuracy                           0.80       179
   macro avg       0.82      0.78      0.78       179
weighted avg       0.81      0.80      0.80       179

Observation:

  • The model is performing way better on the training data than the validation data, which is a clear sign of overfitting.
  • The recall of the model is significantly poorer at 64% for people who survives. This means that out of all the people that survives, only 64% of them will be correctly predicted.

Before concluding for this first model, we can do one more thing to increase the accuracy. The ROC-AUC tuning method to change the threshold used to classify a prediction.

ROC-AUC Tuning¶

In [119]:
# predict probabilities
yhat1 = model_1.predict(x_test_scaled)

# keep probabilities for the positive outcome only
yhat1 = yhat1[:, 0]

# calculate roc curves
fpr, tpr, thresholds1 = roc_curve(y_test, yhat1)

# calculate the g-mean for each threshold
gmeans1 = np.sqrt(tpr * (1-fpr))

# locate the index of the largest g-mean
ix = np.argmax(gmeans1)
print('Best Threshold=%f, G-Mean=%.3f' % (thresholds1[ix], gmeans1[ix]))

# plot the roc curve for the model
pyplot.plot([0,1], [0,1], linestyle='--', label='No Skill')
pyplot.plot(fpr, tpr, marker='.')
pyplot.scatter(fpr[ix], tpr[ix], marker='o', color='black', label='Best')

# axis labels
pyplot.xlabel('False Positive Rate')
pyplot.ylabel('True Positive Rate')
pyplot.legend()

# show the plot
pyplot.show()
6/6 [==============================] - 0s 3ms/step
Best Threshold=0.307432, G-Mean=0.789
In [120]:
#Making the prediction using the test data
y_pred_e1=model_1.predict(x_test_scaled)

#Using the threshold value to convert the predicted data into true or false statements. If the predicted data is higher than threshold, it will be labelled true.
y_pred_e1 = (y_pred_e1 > thresholds1[ix])
6/6 [==============================] - 0s 3ms/step
In [121]:
metrics_score(y_test, y_pred_e1)
              precision    recall  f1-score   support

           0       0.83      0.81      0.82       106
           1       0.73      0.75      0.74        73

    accuracy                           0.79       179
   macro avg       0.78      0.78      0.78       179
weighted avg       0.79      0.79      0.79       179

Observations¶

  • We can see that overall, the performance of the model dropped a little with 1% drop in accuracy.
  • The model is performing better for predicting the people who have survived, but performs poorer for predicting people who have died.
  • As there were some overfitting in the model, we can do a number of things to further tune the model:
    • Change Activation function to address dying ReLu Problem
    • Lowering the learnign rate to reduce oscillation in accuracy during model tuning, and address dying relu problem

Model 2: Adam Optimizer, Leaky ReLU, and lower learning rate¶

Build Model¶

In [122]:
# Fixing the seed for random number generators
backend.clear_session()
np.random.seed(42)
random.seed(42)
tf.random.set_seed(42)

# Initialize sequential model
model_2 = tf.keras.Sequential([tf.keras.layers.Flatten(input_shape=(14,)),#Input layer, 14 parameters
                               tf.keras.layers.Dense(64, activation='leaky_relu'), #Hidden layer
                               tf.keras.layers.Dense(1, activation='sigmoid')]) #Output layer, only 1 node because we only have 1 result to predict

#Defining the optimizer and learnign rate
optimizer = Adam(learning_rate = 0.001)

#Using the settings for the sequential model above, create the model with the following algorithms
model_2.compile(loss = 'binary_crossentropy',
                optimizer = optimizer,
                metrics=['accuracy'])

#Show the model summary
model_2.summary()
Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 flatten (Flatten)           (None, 14)                0         
                                                                 
 dense (Dense)               (None, 64)                960       
                                                                 
 dense_1 (Dense)             (None, 1)                 65        
                                                                 
=================================================================
Total params: 1,025
Trainable params: 1,025
Non-trainable params: 0
_________________________________________________________________
In [123]:
# Let us now fit the model onto our data
history2 = model_2.fit(x_train_scaled,
                          y_train,
                          validation_split=0.2, #20% for validation data
                          verbose=1, #It writes the verbiage for the training progress. A higher number would give more information
                          epochs=50, #Number of times the model goes through the entire training dataset
                          batch_size=32) #This is the batch Stochastic Gradient Descend method, with batchsize per training step
Epoch 1/50
18/18 [==============================] - 1s 17ms/step - loss: 0.6428 - accuracy: 0.6450 - val_loss: 0.6298 - val_accuracy: 0.6573
Epoch 2/50
18/18 [==============================] - 0s 4ms/step - loss: 0.5597 - accuracy: 0.7399 - val_loss: 0.5584 - val_accuracy: 0.6573
Epoch 3/50
18/18 [==============================] - 0s 5ms/step - loss: 0.5105 - accuracy: 0.7768 - val_loss: 0.5122 - val_accuracy: 0.7552
Epoch 4/50
18/18 [==============================] - 0s 4ms/step - loss: 0.4784 - accuracy: 0.8207 - val_loss: 0.4823 - val_accuracy: 0.7902
Epoch 5/50
18/18 [==============================] - 0s 5ms/step - loss: 0.4574 - accuracy: 0.8278 - val_loss: 0.4629 - val_accuracy: 0.7972
Epoch 6/50
18/18 [==============================] - 0s 5ms/step - loss: 0.4417 - accuracy: 0.8366 - val_loss: 0.4505 - val_accuracy: 0.8042
Epoch 7/50
18/18 [==============================] - 0s 4ms/step - loss: 0.4298 - accuracy: 0.8366 - val_loss: 0.4424 - val_accuracy: 0.8042
Epoch 8/50
18/18 [==============================] - 0s 5ms/step - loss: 0.4217 - accuracy: 0.8348 - val_loss: 0.4354 - val_accuracy: 0.8042
Epoch 9/50
18/18 [==============================] - 0s 5ms/step - loss: 0.4154 - accuracy: 0.8366 - val_loss: 0.4336 - val_accuracy: 0.8112
Epoch 10/50
18/18 [==============================] - 0s 4ms/step - loss: 0.4102 - accuracy: 0.8348 - val_loss: 0.4297 - val_accuracy: 0.8322
Epoch 11/50
18/18 [==============================] - 0s 4ms/step - loss: 0.4065 - accuracy: 0.8436 - val_loss: 0.4262 - val_accuracy: 0.8182
Epoch 12/50
18/18 [==============================] - 0s 5ms/step - loss: 0.4025 - accuracy: 0.8401 - val_loss: 0.4254 - val_accuracy: 0.8112
Epoch 13/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3994 - accuracy: 0.8453 - val_loss: 0.4235 - val_accuracy: 0.8392
Epoch 14/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3973 - accuracy: 0.8453 - val_loss: 0.4220 - val_accuracy: 0.8252
Epoch 15/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3956 - accuracy: 0.8453 - val_loss: 0.4207 - val_accuracy: 0.8252
Epoch 16/50
18/18 [==============================] - 0s 6ms/step - loss: 0.3925 - accuracy: 0.8453 - val_loss: 0.4218 - val_accuracy: 0.8322
Epoch 17/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3912 - accuracy: 0.8471 - val_loss: 0.4193 - val_accuracy: 0.8252
Epoch 18/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3891 - accuracy: 0.8418 - val_loss: 0.4188 - val_accuracy: 0.8182
Epoch 19/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3872 - accuracy: 0.8453 - val_loss: 0.4190 - val_accuracy: 0.8182
Epoch 20/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3856 - accuracy: 0.8418 - val_loss: 0.4185 - val_accuracy: 0.8182
Epoch 21/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3844 - accuracy: 0.8436 - val_loss: 0.4193 - val_accuracy: 0.8322
Epoch 22/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3838 - accuracy: 0.8436 - val_loss: 0.4139 - val_accuracy: 0.8112
Epoch 23/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3819 - accuracy: 0.8453 - val_loss: 0.4139 - val_accuracy: 0.8112
Epoch 24/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3813 - accuracy: 0.8471 - val_loss: 0.4151 - val_accuracy: 0.8182
Epoch 25/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3796 - accuracy: 0.8436 - val_loss: 0.4141 - val_accuracy: 0.8182
Epoch 26/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3789 - accuracy: 0.8489 - val_loss: 0.4154 - val_accuracy: 0.8252
Epoch 27/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3772 - accuracy: 0.8453 - val_loss: 0.4145 - val_accuracy: 0.8182
Epoch 28/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3762 - accuracy: 0.8453 - val_loss: 0.4133 - val_accuracy: 0.8112
Epoch 29/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3761 - accuracy: 0.8436 - val_loss: 0.4115 - val_accuracy: 0.8252
Epoch 30/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3749 - accuracy: 0.8401 - val_loss: 0.4111 - val_accuracy: 0.8182
Epoch 31/50
18/18 [==============================] - 0s 6ms/step - loss: 0.3746 - accuracy: 0.8453 - val_loss: 0.4106 - val_accuracy: 0.8182
Epoch 32/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3723 - accuracy: 0.8453 - val_loss: 0.4129 - val_accuracy: 0.8392
Epoch 33/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3723 - accuracy: 0.8436 - val_loss: 0.4112 - val_accuracy: 0.8252
Epoch 34/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3718 - accuracy: 0.8401 - val_loss: 0.4140 - val_accuracy: 0.8392
Epoch 35/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3710 - accuracy: 0.8401 - val_loss: 0.4090 - val_accuracy: 0.8252
Epoch 36/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3700 - accuracy: 0.8453 - val_loss: 0.4107 - val_accuracy: 0.8252
Epoch 37/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3687 - accuracy: 0.8436 - val_loss: 0.4097 - val_accuracy: 0.8252
Epoch 38/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3688 - accuracy: 0.8453 - val_loss: 0.4082 - val_accuracy: 0.8252
Epoch 39/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3674 - accuracy: 0.8436 - val_loss: 0.4087 - val_accuracy: 0.8252
Epoch 40/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3672 - accuracy: 0.8418 - val_loss: 0.4092 - val_accuracy: 0.8252
Epoch 41/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3657 - accuracy: 0.8418 - val_loss: 0.4093 - val_accuracy: 0.8252
Epoch 42/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3660 - accuracy: 0.8453 - val_loss: 0.4083 - val_accuracy: 0.8252
Epoch 43/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3657 - accuracy: 0.8471 - val_loss: 0.4079 - val_accuracy: 0.8252
Epoch 44/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3644 - accuracy: 0.8453 - val_loss: 0.4090 - val_accuracy: 0.8252
Epoch 45/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3647 - accuracy: 0.8453 - val_loss: 0.4086 - val_accuracy: 0.8252
Epoch 46/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3648 - accuracy: 0.8453 - val_loss: 0.4105 - val_accuracy: 0.8392
Epoch 47/50
18/18 [==============================] - 0s 5ms/step - loss: 0.3623 - accuracy: 0.8489 - val_loss: 0.4066 - val_accuracy: 0.8252
Epoch 48/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3625 - accuracy: 0.8471 - val_loss: 0.4077 - val_accuracy: 0.8322
Epoch 49/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3622 - accuracy: 0.8524 - val_loss: 0.4070 - val_accuracy: 0.8252
Epoch 50/50
18/18 [==============================] - 0s 4ms/step - loss: 0.3611 - accuracy: 0.8471 - val_loss: 0.4091 - val_accuracy: 0.8252

Model Accuracy and Loss with Epochs¶

In [124]:
#Plotting Train Loss vs Validation Loss
plt.plot(history2.history['loss'])
plt.plot(history2.history['val_loss'])
plt.title('model loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend(['train', 'validation'], loc='upper left')
plt.show()
In [125]:
#Plotting Epoch vs accuracy
plt.plot(history2.history['accuracy'])
plt.plot(history2.history['val_accuracy'])
plt.title('Accuracy vs Epochs')
plt.ylabel('Accuracy')
plt.xlabel('Epoch')
plt.legend(['Train', 'Validation'], loc='lower right')
plt.show()

Model Performance on training data¶

In [ ]:
# Using the model to make predictions on the training data
y_train_pred = model_2.predict(x_train_scaled)

#Set the threshold of classification to be 0.5
y_train_pred = (y_train_pred > 0.5)

#Performance of model on training data
metrics_score(y_train,y_train_pred)
23/23 [==============================] - 0s 2ms/step
              precision    recall  f1-score   support

           0       0.84      0.93      0.88       443
           1       0.87      0.70      0.77       269

    accuracy                           0.85       712
   macro avg       0.85      0.82      0.83       712
weighted avg       0.85      0.85      0.84       712

Model Performance with validation data¶

In [ ]:
#Making prediction using the model on the validation data to peformance metric.
y_pred=model_2.predict(x_test_scaled)

#Set the threshold of classification to be 0.5
y_pred = (y_pred > 0.5)

#Performance on validation data
metrics_score(y_test,y_pred)
6/6 [==============================] - 0s 3ms/step
              precision    recall  f1-score   support

           0       0.78      0.93      0.85       106
           1       0.87      0.62      0.72        73

    accuracy                           0.80       179
   macro avg       0.82      0.78      0.78       179
weighted avg       0.81      0.80      0.80       179

ROC-AUC Tuning¶

In [ ]:
# predict probabilities
yhat2 = model_2.predict(x_test_scaled)

# keep probabilities for the positive outcome only
yhat2 = yhat2[:, 0]

# calculate roc curves
fpr, tpr, thresholds2 = roc_curve(y_test, yhat2)

# calculate the g-mean for each threshold
gmeans2 = np.sqrt(tpr * (1-fpr))

# locate the index of the largest g-mean
ix = np.argmax(gmeans2)
print('Best Threshold=%f, G-Mean=%.3f' % (thresholds2[ix], gmeans2[ix]))

# plot the roc curve for the model
pyplot.plot([0,1], [0,1], linestyle='--', label='No Skill')
pyplot.plot(fpr, tpr, marker='.')
pyplot.scatter(fpr[ix], tpr[ix], marker='o', color='black', label='Best')

# axis labels
pyplot.xlabel('False Positive Rate')
pyplot.ylabel('True Positive Rate')
pyplot.legend()

# show the plot
pyplot.show()
6/6 [==============================] - 0s 3ms/step
Best Threshold=0.392621, G-Mean=0.785
In [ ]:
#Making the prediction using the test data
y_pred_e2=model_2.predict(x_test_scaled)

#Using the threshold value to convert the predicted data into true or false statements. If the predicted data is higher than threshold, it will be labelled true.
y_pred_e2 = (y_pred_e2 > thresholds2[ix])

metrics_score(y_test, y_pred_e2)
6/6 [==============================] - 0s 2ms/step
              precision    recall  f1-score   support

           0       0.81      0.85      0.83       106
           1       0.76      0.71      0.74        73

    accuracy                           0.79       179
   macro avg       0.79      0.78      0.78       179
weighted avg       0.79      0.79      0.79       179

In [ ]:

Observations¶

  • Performance of model remains the same as overall accuracy remaining the same.
  • Accuracy vs epoch curve is more responsive and no more dying relu issue
  • But it is a little bit too janky, so maybe need to lower learning rate further
  • Amount of loss for validation data remains high with more epoch, but the loss decreases with more epoch. THis means signs of overfitting.

Recommendations:

  • Continue with leaky relu
  • Decrease learning rate further, 0.0005
  • Try using Adamax since it simpolifies the algorithm to deal with overfitting
  • May need to include dropout to see if it helps with the overfitting
  • Increase the number of layers as the performance on training data is not very high

Model 3: Adamax, Leaky ReLU, lower learning rate, one more layer, 0.2 dropout¶

Build Model¶

In [ ]:
# Fixing the seed for random number generators
backend.clear_session()
np.random.seed(42)
random.seed(42)
tf.random.set_seed(42)

from keras.optimizers import Adamax

# Initialize sequential model
model_3 = tf.keras.Sequential([tf.keras.layers.Flatten(input_shape=(14,)),#Input layer, 14 parameters
                               tf.keras.layers.Dense(64, activation='leaky_relu'), #Hidden layer
                               tf.keras.layers.Dropout(0.2), #Dropout 20%
                               tf.keras.layers.Dense(64, activation='leaky_relu'), #2nd Hidden layer
                               tf.keras.layers.Dropout(0.2), #Dropout 20%
                               tf.keras.layers.Dense(1, activation='sigmoid')]) #Output layer, only 1 node because we only have 1 result to predict

#Defining the optimizer and learnign rate
optimizer = Adamax(learning_rate = 0.0005)

#Using the settings for the sequential model above, create the model with the following algorithms
model_3.compile(loss = 'binary_crossentropy',
                optimizer = optimizer,
                metrics=['accuracy'])

#Show the model summary
model_3.summary()
Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 flatten (Flatten)           (None, 14)                0         
                                                                 
 dense (Dense)               (None, 64)                960       
                                                                 
 dropout (Dropout)           (None, 64)                0         
                                                                 
 dense_1 (Dense)             (None, 64)                4160      
                                                                 
 dropout_1 (Dropout)         (None, 64)                0         
                                                                 
 dense_2 (Dense)             (None, 1)                 65        
                                                                 
=================================================================
Total params: 5,185
Trainable params: 5,185
Non-trainable params: 0
_________________________________________________________________
In [ ]:
# Let us now fit the model onto our data
history3 = model_3.fit(x_train_scaled,
                          y_train,
                          validation_split=0.2, #20% for validation data
                          verbose=1, #It writes the verbiage for the training progress. A higher number would give more information
                          epochs=100, #Number of times the model goes through the entire training dataset
                          batch_size=32) #This is the batch Stochastic Gradient Descend method, with batchsize per training step
Epoch 1/100
18/18 [==============================] - 1s 17ms/step - loss: 0.6451 - accuracy: 0.6608 - val_loss: 0.6115 - val_accuracy: 0.7413
Epoch 2/100
18/18 [==============================] - 0s 5ms/step - loss: 0.6097 - accuracy: 0.7135 - val_loss: 0.5841 - val_accuracy: 0.7273
Epoch 3/100
18/18 [==============================] - 0s 5ms/step - loss: 0.5908 - accuracy: 0.7118 - val_loss: 0.5610 - val_accuracy: 0.7203
Epoch 4/100
18/18 [==============================] - 0s 5ms/step - loss: 0.5666 - accuracy: 0.7293 - val_loss: 0.5421 - val_accuracy: 0.7203
Epoch 5/100
18/18 [==============================] - 0s 4ms/step - loss: 0.5526 - accuracy: 0.7399 - val_loss: 0.5254 - val_accuracy: 0.7343
Epoch 6/100
18/18 [==============================] - 0s 5ms/step - loss: 0.5374 - accuracy: 0.7803 - val_loss: 0.5119 - val_accuracy: 0.7622
Epoch 7/100
18/18 [==============================] - 0s 5ms/step - loss: 0.5206 - accuracy: 0.7733 - val_loss: 0.4997 - val_accuracy: 0.7622
Epoch 8/100
18/18 [==============================] - 0s 4ms/step - loss: 0.5173 - accuracy: 0.7645 - val_loss: 0.4893 - val_accuracy: 0.7692
Epoch 9/100
18/18 [==============================] - 0s 5ms/step - loss: 0.5082 - accuracy: 0.7750 - val_loss: 0.4814 - val_accuracy: 0.7692
Epoch 10/100
18/18 [==============================] - 0s 5ms/step - loss: 0.5079 - accuracy: 0.7733 - val_loss: 0.4732 - val_accuracy: 0.7762
Epoch 11/100
18/18 [==============================] - 0s 4ms/step - loss: 0.5030 - accuracy: 0.7698 - val_loss: 0.4663 - val_accuracy: 0.7832
Epoch 12/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4842 - accuracy: 0.7838 - val_loss: 0.4606 - val_accuracy: 0.7762
Epoch 13/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4784 - accuracy: 0.7926 - val_loss: 0.4549 - val_accuracy: 0.7692
Epoch 14/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4782 - accuracy: 0.8049 - val_loss: 0.4502 - val_accuracy: 0.7762
Epoch 15/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4775 - accuracy: 0.7944 - val_loss: 0.4468 - val_accuracy: 0.7902
Epoch 16/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4636 - accuracy: 0.8102 - val_loss: 0.4433 - val_accuracy: 0.7972
Epoch 17/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4690 - accuracy: 0.7909 - val_loss: 0.4399 - val_accuracy: 0.7972
Epoch 18/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4602 - accuracy: 0.8120 - val_loss: 0.4371 - val_accuracy: 0.8042
Epoch 19/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4533 - accuracy: 0.8137 - val_loss: 0.4350 - val_accuracy: 0.8042
Epoch 20/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4533 - accuracy: 0.8102 - val_loss: 0.4333 - val_accuracy: 0.8182
Epoch 21/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4426 - accuracy: 0.8120 - val_loss: 0.4309 - val_accuracy: 0.8182
Epoch 22/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4619 - accuracy: 0.7926 - val_loss: 0.4288 - val_accuracy: 0.8252
Epoch 23/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4399 - accuracy: 0.8049 - val_loss: 0.4271 - val_accuracy: 0.8252
Epoch 24/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4365 - accuracy: 0.8190 - val_loss: 0.4253 - val_accuracy: 0.8252
Epoch 25/100
18/18 [==============================] - 0s 6ms/step - loss: 0.4455 - accuracy: 0.8102 - val_loss: 0.4251 - val_accuracy: 0.8252
Epoch 26/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4416 - accuracy: 0.7961 - val_loss: 0.4233 - val_accuracy: 0.8252
Epoch 27/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4275 - accuracy: 0.8225 - val_loss: 0.4226 - val_accuracy: 0.8252
Epoch 28/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4261 - accuracy: 0.8120 - val_loss: 0.4222 - val_accuracy: 0.8252
Epoch 29/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4226 - accuracy: 0.8225 - val_loss: 0.4220 - val_accuracy: 0.8252
Epoch 30/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4231 - accuracy: 0.8383 - val_loss: 0.4207 - val_accuracy: 0.8252
Epoch 31/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4293 - accuracy: 0.8190 - val_loss: 0.4201 - val_accuracy: 0.8252
Epoch 32/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4231 - accuracy: 0.8120 - val_loss: 0.4206 - val_accuracy: 0.8252
Epoch 33/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4247 - accuracy: 0.8207 - val_loss: 0.4206 - val_accuracy: 0.8252
Epoch 34/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4269 - accuracy: 0.8278 - val_loss: 0.4215 - val_accuracy: 0.8182
Epoch 35/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4139 - accuracy: 0.8278 - val_loss: 0.4209 - val_accuracy: 0.8112
Epoch 36/100
18/18 [==============================] - 0s 6ms/step - loss: 0.4227 - accuracy: 0.8243 - val_loss: 0.4209 - val_accuracy: 0.8112
Epoch 37/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4182 - accuracy: 0.8348 - val_loss: 0.4196 - val_accuracy: 0.8112
Epoch 38/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4211 - accuracy: 0.8190 - val_loss: 0.4186 - val_accuracy: 0.8182
Epoch 39/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4208 - accuracy: 0.8207 - val_loss: 0.4187 - val_accuracy: 0.8112
Epoch 40/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4231 - accuracy: 0.8330 - val_loss: 0.4189 - val_accuracy: 0.8112
Epoch 41/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4246 - accuracy: 0.8155 - val_loss: 0.4186 - val_accuracy: 0.8112
Epoch 42/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4276 - accuracy: 0.8172 - val_loss: 0.4188 - val_accuracy: 0.8112
Epoch 43/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4128 - accuracy: 0.8330 - val_loss: 0.4184 - val_accuracy: 0.8182
Epoch 44/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4334 - accuracy: 0.8190 - val_loss: 0.4180 - val_accuracy: 0.8182
Epoch 45/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4256 - accuracy: 0.8120 - val_loss: 0.4179 - val_accuracy: 0.8252
Epoch 46/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4181 - accuracy: 0.8489 - val_loss: 0.4183 - val_accuracy: 0.8112
Epoch 47/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4169 - accuracy: 0.8225 - val_loss: 0.4170 - val_accuracy: 0.8252
Epoch 48/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4074 - accuracy: 0.8295 - val_loss: 0.4170 - val_accuracy: 0.8252
Epoch 49/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4120 - accuracy: 0.8172 - val_loss: 0.4172 - val_accuracy: 0.8252
Epoch 50/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4083 - accuracy: 0.8348 - val_loss: 0.4184 - val_accuracy: 0.8112
Epoch 51/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4171 - accuracy: 0.8243 - val_loss: 0.4186 - val_accuracy: 0.8112
Epoch 52/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4200 - accuracy: 0.8172 - val_loss: 0.4187 - val_accuracy: 0.8112
Epoch 53/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4118 - accuracy: 0.8225 - val_loss: 0.4194 - val_accuracy: 0.8112
Epoch 54/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4102 - accuracy: 0.8348 - val_loss: 0.4191 - val_accuracy: 0.8112
Epoch 55/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4081 - accuracy: 0.8313 - val_loss: 0.4191 - val_accuracy: 0.8112
Epoch 56/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4040 - accuracy: 0.8471 - val_loss: 0.4194 - val_accuracy: 0.8112
Epoch 57/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4112 - accuracy: 0.8225 - val_loss: 0.4192 - val_accuracy: 0.8112
Epoch 58/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4016 - accuracy: 0.8207 - val_loss: 0.4195 - val_accuracy: 0.7972
Epoch 59/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4098 - accuracy: 0.8102 - val_loss: 0.4192 - val_accuracy: 0.8182
Epoch 60/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4219 - accuracy: 0.8243 - val_loss: 0.4195 - val_accuracy: 0.8042
Epoch 61/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4068 - accuracy: 0.8278 - val_loss: 0.4187 - val_accuracy: 0.8182
Epoch 62/100
18/18 [==============================] - 0s 4ms/step - loss: 0.3960 - accuracy: 0.8383 - val_loss: 0.4188 - val_accuracy: 0.8112
Epoch 63/100
18/18 [==============================] - 0s 4ms/step - loss: 0.3977 - accuracy: 0.8207 - val_loss: 0.4183 - val_accuracy: 0.8112
Epoch 64/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4026 - accuracy: 0.8260 - val_loss: 0.4176 - val_accuracy: 0.8252
Epoch 65/100
18/18 [==============================] - 0s 5ms/step - loss: 0.3964 - accuracy: 0.8295 - val_loss: 0.4186 - val_accuracy: 0.8252
Epoch 66/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4008 - accuracy: 0.8330 - val_loss: 0.4190 - val_accuracy: 0.8112
Epoch 67/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4069 - accuracy: 0.8418 - val_loss: 0.4191 - val_accuracy: 0.7972
Epoch 68/100
18/18 [==============================] - 0s 5ms/step - loss: 0.3992 - accuracy: 0.8225 - val_loss: 0.4191 - val_accuracy: 0.7972
Epoch 69/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4132 - accuracy: 0.8278 - val_loss: 0.4198 - val_accuracy: 0.8112
Epoch 70/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4022 - accuracy: 0.8383 - val_loss: 0.4193 - val_accuracy: 0.8112
Epoch 71/100
18/18 [==============================] - 0s 5ms/step - loss: 0.3974 - accuracy: 0.8295 - val_loss: 0.4190 - val_accuracy: 0.8182
Epoch 72/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4140 - accuracy: 0.8172 - val_loss: 0.4192 - val_accuracy: 0.8182
Epoch 73/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4029 - accuracy: 0.8295 - val_loss: 0.4191 - val_accuracy: 0.8112
Epoch 74/100
18/18 [==============================] - 0s 5ms/step - loss: 0.3990 - accuracy: 0.8278 - val_loss: 0.4196 - val_accuracy: 0.8112
Epoch 75/100
18/18 [==============================] - 0s 6ms/step - loss: 0.3964 - accuracy: 0.8313 - val_loss: 0.4195 - val_accuracy: 0.8182
Epoch 76/100
18/18 [==============================] - 0s 5ms/step - loss: 0.3952 - accuracy: 0.8348 - val_loss: 0.4189 - val_accuracy: 0.8182
Epoch 77/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4127 - accuracy: 0.8278 - val_loss: 0.4186 - val_accuracy: 0.8182
Epoch 78/100
18/18 [==============================] - 0s 4ms/step - loss: 0.4000 - accuracy: 0.8348 - val_loss: 0.4188 - val_accuracy: 0.8252
Epoch 79/100
18/18 [==============================] - 0s 4ms/step - loss: 0.3959 - accuracy: 0.8330 - val_loss: 0.4180 - val_accuracy: 0.8322
Epoch 80/100
18/18 [==============================] - 0s 4ms/step - loss: 0.3881 - accuracy: 0.8366 - val_loss: 0.4181 - val_accuracy: 0.8252
Epoch 81/100
18/18 [==============================] - 0s 4ms/step - loss: 0.3975 - accuracy: 0.8295 - val_loss: 0.4176 - val_accuracy: 0.8322
Epoch 82/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4059 - accuracy: 0.8207 - val_loss: 0.4175 - val_accuracy: 0.8252
Epoch 83/100
18/18 [==============================] - 0s 4ms/step - loss: 0.3976 - accuracy: 0.8383 - val_loss: 0.4181 - val_accuracy: 0.8252
Epoch 84/100
18/18 [==============================] - 0s 6ms/step - loss: 0.3966 - accuracy: 0.8330 - val_loss: 0.4178 - val_accuracy: 0.8182
Epoch 85/100
18/18 [==============================] - 0s 6ms/step - loss: 0.3991 - accuracy: 0.8366 - val_loss: 0.4185 - val_accuracy: 0.8182
Epoch 86/100
18/18 [==============================] - 0s 7ms/step - loss: 0.3952 - accuracy: 0.8295 - val_loss: 0.4187 - val_accuracy: 0.8182
Epoch 87/100
18/18 [==============================] - 0s 5ms/step - loss: 0.4032 - accuracy: 0.8225 - val_loss: 0.4185 - val_accuracy: 0.8182
Epoch 88/100
18/18 [==============================] - 0s 6ms/step - loss: 0.4011 - accuracy: 0.8330 - val_loss: 0.4178 - val_accuracy: 0.8252
Epoch 89/100
18/18 [==============================] - 0s 7ms/step - loss: 0.3900 - accuracy: 0.8260 - val_loss: 0.4177 - val_accuracy: 0.8252
Epoch 90/100
18/18 [==============================] - 0s 7ms/step - loss: 0.3891 - accuracy: 0.8295 - val_loss: 0.4186 - val_accuracy: 0.8252
Epoch 91/100
18/18 [==============================] - 0s 7ms/step - loss: 0.4019 - accuracy: 0.8295 - val_loss: 0.4183 - val_accuracy: 0.8252
Epoch 92/100
18/18 [==============================] - 0s 6ms/step - loss: 0.3850 - accuracy: 0.8348 - val_loss: 0.4186 - val_accuracy: 0.8252
Epoch 93/100
18/18 [==============================] - 0s 7ms/step - loss: 0.3995 - accuracy: 0.8436 - val_loss: 0.4194 - val_accuracy: 0.8252
Epoch 94/100
18/18 [==============================] - 0s 6ms/step - loss: 0.4177 - accuracy: 0.8137 - val_loss: 0.4188 - val_accuracy: 0.8252
Epoch 95/100
18/18 [==============================] - 0s 8ms/step - loss: 0.3873 - accuracy: 0.8524 - val_loss: 0.4188 - val_accuracy: 0.8252
Epoch 96/100
18/18 [==============================] - 0s 7ms/step - loss: 0.3873 - accuracy: 0.8401 - val_loss: 0.4183 - val_accuracy: 0.8252
Epoch 97/100
18/18 [==============================] - 0s 6ms/step - loss: 0.3988 - accuracy: 0.8383 - val_loss: 0.4187 - val_accuracy: 0.8252
Epoch 98/100
18/18 [==============================] - 0s 7ms/step - loss: 0.3790 - accuracy: 0.8436 - val_loss: 0.4191 - val_accuracy: 0.8252
Epoch 99/100
18/18 [==============================] - 0s 8ms/step - loss: 0.3903 - accuracy: 0.8313 - val_loss: 0.4193 - val_accuracy: 0.8252
Epoch 100/100
18/18 [==============================] - 0s 6ms/step - loss: 0.3898 - accuracy: 0.8418 - val_loss: 0.4189 - val_accuracy: 0.8252

Model Accuracy and Loss with Epochs¶

In [ ]:
#Plotting Train Loss vs Validation Loss
plt.plot(history3.history['loss'])
plt.plot(history3.history['val_loss'])
plt.title('model loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend(['train', 'validation'], loc='upper left')
plt.show()
In [ ]:
#Plotting Epoch vs accuracy
plt.plot(history3.history['accuracy'])
plt.plot(history3.history['val_accuracy'])
plt.title('Accuracy vs Epochs')
plt.ylabel('Accuracy')
plt.xlabel('Epoch')
plt.legend(['Train', 'Validation'], loc='lower right')
plt.show()

Model Performance on training data¶

In [ ]:
# Using the model to make predictions on the training data
y_train_pred = model_3.predict(x_train_scaled)

#Set the threshold of classification to be 0.5
y_train_pred = (y_train_pred > 0.5)

#Performance of model on training data
metrics_score(y_train,y_train_pred)
23/23 [==============================] - 0s 2ms/step
              precision    recall  f1-score   support

           0       0.83      0.93      0.87       443
           1       0.85      0.68      0.76       269

    accuracy                           0.83       712
   macro avg       0.84      0.80      0.82       712
weighted avg       0.84      0.83      0.83       712

Model Performance with validation data¶

In [ ]:
#Making prediction using the model on the validation data to peformance metric.
y_pred=model_3.predict(x_test_scaled)

#Set the threshold of classification to be 0.5
y_pred = (y_pred > 0.5)

#Performance on validation data
metrics_score(y_test,y_pred)
6/6 [==============================] - 0s 2ms/step
              precision    recall  f1-score   support

           0       0.78      0.92      0.85       106
           1       0.85      0.63      0.72        73

    accuracy                           0.80       179
   macro avg       0.82      0.78      0.79       179
weighted avg       0.81      0.80      0.80       179

ROC-AUC Tuning¶

In [ ]:
# predict probabilities
yhat3 = model_3.predict(x_test_scaled)

# keep probabilities for the positive outcome only
yhat3 = yhat3[:, 0]

# calculate roc curves
fpr, tpr, thresholds3 = roc_curve(y_test, yhat3)

# calculate the g-mean for each threshold
gmeans3 = np.sqrt(tpr * (1-fpr))

# locate the index of the largest g-mean
ix = np.argmax(gmeans3)
print('Best Threshold=%f, G-Mean=%.3f' % (thresholds3[ix], gmeans3[ix]))

# plot the roc curve for the model
pyplot.plot([0,1], [0,1], linestyle='--', label='No Skill')
pyplot.plot(fpr, tpr, marker='.')
pyplot.scatter(fpr[ix], tpr[ix], marker='o', color='black', label='Best')

# axis labels
pyplot.xlabel('False Positive Rate')
pyplot.ylabel('True Positive Rate')
pyplot.legend()

# show the plot
pyplot.show()
6/6 [==============================] - 0s 2ms/step
Best Threshold=0.295844, G-Mean=0.798
In [ ]:
#Making the prediction using the test data
y_pred_e3=model_3.predict(x_test_scaled)

#Using the threshold value to convert the predicted data into true or false statements. If the predicted data is higher than threshold, it will be labelled true.
y_pred_e3 = (y_pred_e3 > thresholds3[ix])

metrics_score(y_test, y_pred_e3)
6/6 [==============================] - 0s 2ms/step
              precision    recall  f1-score   support

           0       0.83      0.83      0.83       106
           1       0.75      0.75      0.75        73

    accuracy                           0.80       179
   macro avg       0.79      0.79      0.79       179
weighted avg       0.80      0.80      0.80       179

Observations¶

  • Loss vs epoch took longer to learn, and training curve became less smooth. This could be due to the dropout regularizations, affecting the learning process.
  • Accuracy vs epoch curves are also very oscillatory for both, and this could mean that the learning rate is still too high, or the optimizer is not so suitable
  • The model's performance on training data has dropped, but the performance on validation data maintains. This is a good sign of lesser overfitting, but can still be further improved with more regularization techniques or smaller batch size

Recommendations:

  • Epoch can stop earlier, around 40 - 50 to prevent overfitting
  • Batch Normalization to deal with the overfitting

Model 4: Adamax, Leaky ReLU, batch normalization¶

Build Model¶

In [ ]:
from keras.layers import Dense, Dropout, Flatten, BatchNormalization
from keras import regularizers

# Fixing the seed for random number generators
backend.clear_session()
np.random.seed(42)
random.seed(42)
tf.random.set_seed(42)

# Initialize sequential model
model_4 = tf.keras.Sequential([tf.keras.layers.Flatten(input_shape=(14,)),#Input layer, 14 parameters
                               tf.keras.layers.Dense(64, activation='leaky_relu'), #Hidden layer
                               tf.keras.layers.Dropout(0.2), #Dropout 20%
                               BatchNormalization(),
                               tf.keras.layers.Dense(64, activation='leaky_relu'), # 2nd Hidden layer
                               tf.keras.layers.Dropout(0.2), #Dropout 20%
                               BatchNormalization(),
                               tf.keras.layers.Dense(1, activation='sigmoid')]) #Output layer, only 1 node because we only have 1 result to predict

#Defining the optimizer and learnign rate
optimizer = Adamax(learning_rate = 0.0005)

#Using the settings for the sequential model above, create the model with the following algorithms
model_4.compile(loss = 'binary_crossentropy',
                optimizer = optimizer,
                metrics=['accuracy'])

#Show the model summary
model_4.summary()
Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 flatten (Flatten)           (None, 14)                0         
                                                                 
 dense (Dense)               (None, 64)                960       
                                                                 
 dropout (Dropout)           (None, 64)                0         
                                                                 
 batch_normalization (BatchN  (None, 64)               256       
 ormalization)                                                   
                                                                 
 dense_1 (Dense)             (None, 64)                4160      
                                                                 
 dropout_1 (Dropout)         (None, 64)                0         
                                                                 
 batch_normalization_1 (Batc  (None, 64)               256       
 hNormalization)                                                 
                                                                 
 dense_2 (Dense)             (None, 1)                 65        
                                                                 
=================================================================
Total params: 5,697
Trainable params: 5,441
Non-trainable params: 256
_________________________________________________________________
In [ ]:
# Let us now fit the model onto our data
history4 = model_4.fit(x_train_scaled,
                          y_train,
                          validation_split=0.2, #20% for validation data
                          verbose=1, #It writes the verbiage for the training progress. A higher number would give more information
                          epochs=50, #Number of times the model goes through the entire training dataset
                          batch_size=64) #This is the batch Stochastic Gradient Descend method, with batchsize per training step
Epoch 1/50
9/9 [==============================] - 1s 41ms/step - loss: 0.7539 - accuracy: 0.6081 - val_loss: 0.6326 - val_accuracy: 0.7203
Epoch 2/50
9/9 [==============================] - 0s 10ms/step - loss: 0.6731 - accuracy: 0.6555 - val_loss: 0.6142 - val_accuracy: 0.7343
Epoch 3/50
9/9 [==============================] - 0s 9ms/step - loss: 0.6617 - accuracy: 0.6643 - val_loss: 0.5974 - val_accuracy: 0.7273
Epoch 4/50
9/9 [==============================] - 0s 8ms/step - loss: 0.6141 - accuracy: 0.6819 - val_loss: 0.5829 - val_accuracy: 0.7273
Epoch 5/50
9/9 [==============================] - 0s 10ms/step - loss: 0.5750 - accuracy: 0.7135 - val_loss: 0.5704 - val_accuracy: 0.7203
Epoch 6/50
9/9 [==============================] - 0s 7ms/step - loss: 0.5549 - accuracy: 0.7329 - val_loss: 0.5587 - val_accuracy: 0.7343
Epoch 7/50
9/9 [==============================] - 0s 7ms/step - loss: 0.5458 - accuracy: 0.7417 - val_loss: 0.5479 - val_accuracy: 0.7483
Epoch 8/50
9/9 [==============================] - 0s 9ms/step - loss: 0.5453 - accuracy: 0.7399 - val_loss: 0.5386 - val_accuracy: 0.7692
Epoch 9/50
9/9 [==============================] - 0s 9ms/step - loss: 0.5345 - accuracy: 0.7399 - val_loss: 0.5299 - val_accuracy: 0.7832
Epoch 10/50
9/9 [==============================] - 0s 9ms/step - loss: 0.5486 - accuracy: 0.7487 - val_loss: 0.5213 - val_accuracy: 0.7832
Epoch 11/50
9/9 [==============================] - 0s 10ms/step - loss: 0.5341 - accuracy: 0.7540 - val_loss: 0.5131 - val_accuracy: 0.7762
Epoch 12/50
9/9 [==============================] - 0s 9ms/step - loss: 0.5028 - accuracy: 0.7627 - val_loss: 0.5065 - val_accuracy: 0.7692
Epoch 13/50
9/9 [==============================] - 0s 7ms/step - loss: 0.5105 - accuracy: 0.7504 - val_loss: 0.4988 - val_accuracy: 0.7762
Epoch 14/50
9/9 [==============================] - 0s 8ms/step - loss: 0.5260 - accuracy: 0.7487 - val_loss: 0.4920 - val_accuracy: 0.7762
Epoch 15/50
9/9 [==============================] - 0s 7ms/step - loss: 0.5096 - accuracy: 0.7768 - val_loss: 0.4863 - val_accuracy: 0.7692
Epoch 16/50
9/9 [==============================] - 0s 10ms/step - loss: 0.4819 - accuracy: 0.7680 - val_loss: 0.4808 - val_accuracy: 0.7692
Epoch 17/50
9/9 [==============================] - 0s 8ms/step - loss: 0.5008 - accuracy: 0.7803 - val_loss: 0.4760 - val_accuracy: 0.7832
Epoch 18/50
9/9 [==============================] - 0s 10ms/step - loss: 0.4951 - accuracy: 0.7715 - val_loss: 0.4704 - val_accuracy: 0.7902
Epoch 19/50
9/9 [==============================] - 0s 9ms/step - loss: 0.5134 - accuracy: 0.7873 - val_loss: 0.4658 - val_accuracy: 0.7832
Epoch 20/50
9/9 [==============================] - 0s 7ms/step - loss: 0.5023 - accuracy: 0.7592 - val_loss: 0.4615 - val_accuracy: 0.7832
Epoch 21/50
9/9 [==============================] - 0s 9ms/step - loss: 0.4774 - accuracy: 0.7768 - val_loss: 0.4584 - val_accuracy: 0.7832
Epoch 22/50
9/9 [==============================] - 0s 10ms/step - loss: 0.4627 - accuracy: 0.7926 - val_loss: 0.4558 - val_accuracy: 0.7832
Epoch 23/50
9/9 [==============================] - 0s 9ms/step - loss: 0.4687 - accuracy: 0.7786 - val_loss: 0.4521 - val_accuracy: 0.7832
Epoch 24/50
9/9 [==============================] - 0s 10ms/step - loss: 0.4696 - accuracy: 0.7838 - val_loss: 0.4494 - val_accuracy: 0.7972
Epoch 25/50
9/9 [==============================] - 0s 8ms/step - loss: 0.4690 - accuracy: 0.8084 - val_loss: 0.4463 - val_accuracy: 0.7972
Epoch 26/50
9/9 [==============================] - 0s 8ms/step - loss: 0.4838 - accuracy: 0.7909 - val_loss: 0.4432 - val_accuracy: 0.8042
Epoch 27/50
9/9 [==============================] - 0s 8ms/step - loss: 0.4544 - accuracy: 0.7909 - val_loss: 0.4409 - val_accuracy: 0.8182
Epoch 28/50
9/9 [==============================] - 0s 10ms/step - loss: 0.4536 - accuracy: 0.8014 - val_loss: 0.4387 - val_accuracy: 0.8112
Epoch 29/50
9/9 [==============================] - 0s 10ms/step - loss: 0.4500 - accuracy: 0.8014 - val_loss: 0.4369 - val_accuracy: 0.8112
Epoch 30/50
9/9 [==============================] - 0s 10ms/step - loss: 0.4694 - accuracy: 0.7909 - val_loss: 0.4348 - val_accuracy: 0.8112
Epoch 31/50
9/9 [==============================] - 0s 7ms/step - loss: 0.4652 - accuracy: 0.8067 - val_loss: 0.4331 - val_accuracy: 0.8112
Epoch 32/50
9/9 [==============================] - 0s 10ms/step - loss: 0.4367 - accuracy: 0.7979 - val_loss: 0.4320 - val_accuracy: 0.8112
Epoch 33/50
9/9 [==============================] - 0s 7ms/step - loss: 0.4607 - accuracy: 0.7909 - val_loss: 0.4312 - val_accuracy: 0.8182
Epoch 34/50
9/9 [==============================] - 0s 7ms/step - loss: 0.4828 - accuracy: 0.7750 - val_loss: 0.4310 - val_accuracy: 0.8182
Epoch 35/50
9/9 [==============================] - 0s 9ms/step - loss: 0.4604 - accuracy: 0.8172 - val_loss: 0.4293 - val_accuracy: 0.8182
Epoch 36/50
9/9 [==============================] - 0s 10ms/step - loss: 0.4476 - accuracy: 0.8014 - val_loss: 0.4278 - val_accuracy: 0.8182
Epoch 37/50
9/9 [==============================] - 0s 9ms/step - loss: 0.4457 - accuracy: 0.8137 - val_loss: 0.4265 - val_accuracy: 0.8182
Epoch 38/50
9/9 [==============================] - 0s 8ms/step - loss: 0.4602 - accuracy: 0.7944 - val_loss: 0.4253 - val_accuracy: 0.8182
Epoch 39/50
9/9 [==============================] - 0s 8ms/step - loss: 0.4886 - accuracy: 0.7926 - val_loss: 0.4238 - val_accuracy: 0.8182
Epoch 40/50
9/9 [==============================] - 0s 8ms/step - loss: 0.4473 - accuracy: 0.8260 - val_loss: 0.4232 - val_accuracy: 0.8182
Epoch 41/50
9/9 [==============================] - 0s 9ms/step - loss: 0.4723 - accuracy: 0.7786 - val_loss: 0.4220 - val_accuracy: 0.8182
Epoch 42/50
9/9 [==============================] - 0s 9ms/step - loss: 0.4608 - accuracy: 0.7961 - val_loss: 0.4220 - val_accuracy: 0.8182
Epoch 43/50
9/9 [==============================] - 0s 9ms/step - loss: 0.4544 - accuracy: 0.7961 - val_loss: 0.4215 - val_accuracy: 0.8182
Epoch 44/50
9/9 [==============================] - 0s 8ms/step - loss: 0.4762 - accuracy: 0.7856 - val_loss: 0.4215 - val_accuracy: 0.8112
Epoch 45/50
9/9 [==============================] - 0s 7ms/step - loss: 0.4750 - accuracy: 0.7944 - val_loss: 0.4217 - val_accuracy: 0.8112
Epoch 46/50
9/9 [==============================] - 0s 8ms/step - loss: 0.4768 - accuracy: 0.7944 - val_loss: 0.4220 - val_accuracy: 0.8112
Epoch 47/50
9/9 [==============================] - 0s 7ms/step - loss: 0.4429 - accuracy: 0.8120 - val_loss: 0.4210 - val_accuracy: 0.8112
Epoch 48/50
9/9 [==============================] - 0s 7ms/step - loss: 0.4288 - accuracy: 0.8225 - val_loss: 0.4204 - val_accuracy: 0.8112
Epoch 49/50
9/9 [==============================] - 0s 10ms/step - loss: 0.4487 - accuracy: 0.7961 - val_loss: 0.4198 - val_accuracy: 0.8112
Epoch 50/50
9/9 [==============================] - 0s 8ms/step - loss: 0.4389 - accuracy: 0.8260 - val_loss: 0.4198 - val_accuracy: 0.8112

Model Accuracy and Loss with Epochs¶

In [ ]:
#Plotting Train Loss vs Validation Loss
plt.plot(history4.history['loss'])
plt.plot(history4.history['val_loss'])
plt.title('model loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend(['train', 'validation'], loc='upper left')
plt.show()
In [ ]:
#Plotting Epoch vs accuracy
plt.plot(history4.history['accuracy'])
plt.plot(history4.history['val_accuracy'])
plt.title('Accuracy vs Epochs')
plt.ylabel('Accuracy')
plt.xlabel('Epoch')
plt.legend(['Train', 'Validation'], loc='lower right')
plt.show()

Model Performance on training data¶

In [ ]:
# Using the model to make predictions on the training data
y_train_pred = model_4.predict(x_train_scaled)

#Set the threshold of classification to be 0.5
y_train_pred = (y_train_pred > 0.5)

#Performance of model on training data
metrics_score(y_train,y_train_pred)
23/23 [==============================] - 0s 2ms/step
              precision    recall  f1-score   support

           0       0.82      0.93      0.87       443
           1       0.86      0.67      0.75       269

    accuracy                           0.83       712
   macro avg       0.84      0.80      0.81       712
weighted avg       0.84      0.83      0.83       712

Model Performance with validation data¶

In [ ]:
#Making prediction using the model on the validation data to peformance metric.
y_pred=model_4.predict(x_test_scaled)

#Set the threshold of classification to be 0.5
y_pred = (y_pred > 0.5)

#Performance on validation data
metrics_score(y_test,y_pred)
6/6 [==============================] - 0s 3ms/step
              precision    recall  f1-score   support

           0       0.78      0.92      0.85       106
           1       0.85      0.63      0.72        73

    accuracy                           0.80       179
   macro avg       0.82      0.78      0.79       179
weighted avg       0.81      0.80      0.80       179

ROC-AUC Tuning¶

In [ ]:
# predict probabilities
yhat4 = model_4.predict(x_test_scaled)

# keep probabilities for the positive outcome only
yhat4 = yhat4[:, 0]

# calculate roc curves
fpr, tpr, thresholds4 = roc_curve(y_test, yhat4)

# calculate the g-mean for each threshold
gmeans4 = np.sqrt(tpr * (1-fpr))

# locate the index of the largest g-mean
ix = np.argmax(gmeans4)
print('Best Threshold=%f, G-Mean=%.3f' % (thresholds4[ix], gmeans4[ix]))

# plot the roc curve for the model
pyplot.plot([0,1], [0,1], linestyle='--', label='No Skill')
pyplot.plot(fpr, tpr, marker='.')
pyplot.scatter(fpr[ix], tpr[ix], marker='o', color='black', label='Best')

# axis labels
pyplot.xlabel('False Positive Rate')
pyplot.ylabel('True Positive Rate')
pyplot.legend()

# show the plot
pyplot.show()
6/6 [==============================] - 0s 2ms/step
Best Threshold=0.433699, G-Mean=0.795
In [ ]:
#Making the prediction using the test data
y_pred_e4=model_4.predict(x_test_scaled)

#Using the threshold value to convert the predicted data into true or false statements. If the predicted data is higher than threshold, it will be labelled true.
y_pred_e4 = (y_pred_e4 > thresholds4[ix])

metrics_score(y_test, y_pred_e4)
6/6 [==============================] - 0s 4ms/step
              precision    recall  f1-score   support

           0       0.81      0.89      0.85       106
           1       0.81      0.70      0.75        73

    accuracy                           0.81       179
   macro avg       0.81      0.79      0.80       179
weighted avg       0.81      0.81      0.81       179

Observations¶

  • Accuracy of model improved from 80% to 81%
  • Lesser overfitting as a result of the batch normalization, larger batch size, and lesser epochs
  • The accuracy of the model seems to drop with epochs above 40, so epoch needs to be tuned as well

Recommendations:

  • Time to use some sort of automated tuning for this parameters.

Keras Tuner - Finding number of layers and neurons¶

In [ ]:
def build_model(h):

  # Clear previous session
  backend.clear_session()
  np.random.seed(42)
  random.seed(42)
  tf.random.set_seed(42)

  # Initialize sequential model
  model = keras.Sequential()

  # Add hidden layers (input layer will be adjusted automatically based on shape of input data)
  for i in range(h.Int('num_layers', 2, 10)):
    model.add(layers.Dense(units=h.Int('units_' + str(i),
                                        min_value=32,
                                        max_value=128,
                                        step=32),
                                        activation='leaky_relu'))

  # Add the output layer
  model.add(layers.Dense(1, activation='sigmoid'))

  # Using the settings for the sequential model above, create the model with the following algorithms
  model.compile(optimizer=keras.optimizers.Adamax(
                h.Choice('learning_rate', [0.0003, 0.0005, 0.0007])), #Choice() returns a random option from list
                loss='binary_crossentropy',
                metrics=['accuracy'])

  return model
In [ ]:
# Install Keras Tuner
!pip install keras-tuner
Collecting keras-tuner
  Downloading keras_tuner-1.4.7-py3-none-any.whl (129 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 129.1/129.1 kB 2.4 MB/s eta 0:00:00
Requirement already satisfied: keras in /usr/local/lib/python3.10/dist-packages (from keras-tuner) (2.12.0)
Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from keras-tuner) (24.0)
Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from keras-tuner) (2.31.0)
Collecting kt-legacy (from keras-tuner)
  Downloading kt_legacy-1.0.5-py3-none-any.whl (9.6 kB)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->keras-tuner) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->keras-tuner) (3.6)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->keras-tuner) (2.0.7)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->keras-tuner) (2024.2.2)
Installing collected packages: kt-legacy, keras-tuner
Successfully installed keras-tuner-1.4.7 kt-legacy-1.0.5
In [ ]:
from tensorflow import keras
from tensorflow.keras import layers
from kerastuner.tuners import RandomSearch

# Initialie the tuner using randomsearch
tuner = RandomSearch(build_model,
                     objective='val_accuracy',
                     max_trials=5,
                     executions_per_trial=3, #Number of different models to try
                     project_name='Job_')

# See what combination of values were simulated
tuner.search_space_summary()
Search space summary
Default search space size: 4
num_layers (Int)
{'default': None, 'conditions': [], 'min_value': 2, 'max_value': 10, 'step': 1, 'sampling': 'linear'}
units_0 (Int)
{'default': None, 'conditions': [], 'min_value': 32, 'max_value': 128, 'step': 32, 'sampling': 'linear'}
units_1 (Int)
{'default': None, 'conditions': [], 'min_value': 32, 'max_value': 128, 'step': 32, 'sampling': 'linear'}
learning_rate (Choice)
{'default': 0.0003, 'conditions': [], 'values': [0.0003, 0.0005, 0.0007], 'ordered': True}
In [ ]:
# Searching the best model on training data
tuner.search(x_train_scaled, y_train,
             epochs=50,
             validation_split = 0.2)
Trial 5 Complete [00h 00m 30s]
val_accuracy: 0.8251748085021973

Best val_accuracy So Far: 0.8531468510627747
Total elapsed time: 00h 04m 27s
In [ ]:
# Printing the best models with their hyperparameters
tuner.results_summary()
Results summary
Results in ./Job_
Showing 10 best trials
Objective(name="val_accuracy", direction="max")

Trial 2 summary
Hyperparameters:
num_layers: 9
units_0: 96
units_1: 96
learning_rate: 0.0003
units_2: 128
units_3: 96
units_4: 96
units_5: 96
units_6: 64
units_7: 64
units_8: 32
Score: 0.8531468510627747

Trial 3 summary
Hyperparameters:
num_layers: 9
units_0: 128
units_1: 96
learning_rate: 0.0003
units_2: 64
units_3: 64
units_4: 64
units_5: 64
units_6: 96
units_7: 64
units_8: 32
Score: 0.8531468510627747

Trial 0 summary
Hyperparameters:
num_layers: 8
units_0: 128
units_1: 64
learning_rate: 0.0005
units_2: 32
units_3: 32
units_4: 32
units_5: 32
units_6: 32
units_7: 32
Score: 0.8461538553237915

Trial 1 summary
Hyperparameters:
num_layers: 6
units_0: 64
units_1: 64
learning_rate: 0.0003
units_2: 32
units_3: 64
units_4: 96
units_5: 32
units_6: 128
units_7: 32
Score: 0.8321678042411804

Trial 4 summary
Hyperparameters:
num_layers: 2
units_0: 32
units_1: 32
learning_rate: 0.0005
units_2: 96
units_3: 64
units_4: 96
units_5: 64
units_6: 64
units_7: 32
units_8: 128
Score: 0.8251748085021973

Build Model¶

In [126]:
## Create model based on tuner results

# Clear session
backend.clear_session()
np.random.seed(42)
random.seed(42)
tf.random.set_seed(42)

# Initialize sequential model
modelkeras = tf.keras.Sequential([tf.keras.layers.Flatten(input_shape=(14,)),#Input layer, 14 parameters
                                  tf.keras.layers.Dense(128, activation='leaky_relu'), # 0 Hidden layer
                                  tf.keras.layers.Dense(96, activation='leaky_relu'), # 1 Hidden layer
                                  tf.keras.layers.Dense(64, activation='leaky_relu'), # 2 Hidden layer
                                  tf.keras.layers.Dense(64, activation='leaky_relu'), # 3 Hidden layer
                                  tf.keras.layers.Dense(64, activation='leaky_relu'), # 4 Hidden layer
                                  tf.keras.layers.Dense(64, activation='leaky_relu'), # 5 Hidden layer
                                  tf.keras.layers.Dense(96, activation='leaky_relu'), # 6 Hidden layer
                                  tf.keras.layers.Dense(64, activation='leaky_relu'), # 7 Hidden layer
                                  tf.keras.layers.Dense(32, activation='leaky_relu'), # 8 Hidden layer
                                  tf.keras.layers.Dense(1, activation='sigmoid')]) #Output layer, only 1 node because we only have 1 result to predict

# Compile model using oparameters
optimizer = tf.keras.optimizers.Adamax(0.0003)
modelkeras.compile(loss='binary_crossentropy',optimizer=optimizer,metrics=['accuracy'])

# See summary
modelkeras.summary()
Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 flatten (Flatten)           (None, 14)                0         
                                                                 
 dense (Dense)               (None, 128)               1920      
                                                                 
 dense_1 (Dense)             (None, 96)                12384     
                                                                 
 dense_2 (Dense)             (None, 64)                6208      
                                                                 
 dense_3 (Dense)             (None, 64)                4160      
                                                                 
 dense_4 (Dense)             (None, 64)                4160      
                                                                 
 dense_5 (Dense)             (None, 64)                4160      
                                                                 
 dense_6 (Dense)             (None, 96)                6240      
                                                                 
 dense_7 (Dense)             (None, 64)                6208      
                                                                 
 dense_8 (Dense)             (None, 32)                2080      
                                                                 
 dense_9 (Dense)             (None, 1)                 33        
                                                                 
=================================================================
Total params: 47,553
Trainable params: 47,553
Non-trainable params: 0
_________________________________________________________________
In [127]:
history_keras = modelkeras.fit(x_train_scaled,
                       y_train,
                       batch_size=64,
                       epochs=150,
                       verbose=1,
                       validation_split = 0.2)
Epoch 1/150
9/9 [==============================] - 5s 118ms/step - loss: 0.6835 - accuracy: 0.6134 - val_loss: 0.6685 - val_accuracy: 0.6573
Epoch 2/150
9/9 [==============================] - 0s 25ms/step - loss: 0.6659 - accuracy: 0.6134 - val_loss: 0.6463 - val_accuracy: 0.6573
Epoch 3/150
9/9 [==============================] - 0s 27ms/step - loss: 0.6434 - accuracy: 0.6134 - val_loss: 0.6185 - val_accuracy: 0.6573
Epoch 4/150
9/9 [==============================] - 0s 37ms/step - loss: 0.6185 - accuracy: 0.6134 - val_loss: 0.5902 - val_accuracy: 0.6643
Epoch 5/150
9/9 [==============================] - 0s 25ms/step - loss: 0.5926 - accuracy: 0.6661 - val_loss: 0.5604 - val_accuracy: 0.7273
Epoch 6/150
9/9 [==============================] - 0s 28ms/step - loss: 0.5671 - accuracy: 0.7311 - val_loss: 0.5366 - val_accuracy: 0.7552
Epoch 7/150
9/9 [==============================] - 0s 18ms/step - loss: 0.5490 - accuracy: 0.7575 - val_loss: 0.5173 - val_accuracy: 0.7902
Epoch 8/150
9/9 [==============================] - 0s 28ms/step - loss: 0.5317 - accuracy: 0.7891 - val_loss: 0.5027 - val_accuracy: 0.7972
Epoch 9/150
9/9 [==============================] - 0s 28ms/step - loss: 0.5171 - accuracy: 0.8190 - val_loss: 0.4911 - val_accuracy: 0.7762
Epoch 10/150
9/9 [==============================] - 0s 20ms/step - loss: 0.5029 - accuracy: 0.8243 - val_loss: 0.4793 - val_accuracy: 0.7762
Epoch 11/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4899 - accuracy: 0.8243 - val_loss: 0.4684 - val_accuracy: 0.7902
Epoch 12/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4765 - accuracy: 0.8295 - val_loss: 0.4600 - val_accuracy: 0.7902
Epoch 13/150
9/9 [==============================] - 0s 15ms/step - loss: 0.4627 - accuracy: 0.8383 - val_loss: 0.4517 - val_accuracy: 0.8042
Epoch 14/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4496 - accuracy: 0.8418 - val_loss: 0.4434 - val_accuracy: 0.8042
Epoch 15/150
9/9 [==============================] - 0s 16ms/step - loss: 0.4368 - accuracy: 0.8436 - val_loss: 0.4377 - val_accuracy: 0.8042
Epoch 16/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4238 - accuracy: 0.8453 - val_loss: 0.4325 - val_accuracy: 0.8042
Epoch 17/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4128 - accuracy: 0.8471 - val_loss: 0.4283 - val_accuracy: 0.8042
Epoch 18/150
9/9 [==============================] - 0s 16ms/step - loss: 0.4029 - accuracy: 0.8471 - val_loss: 0.4264 - val_accuracy: 0.8112
Epoch 19/150
9/9 [==============================] - 0s 17ms/step - loss: 0.3938 - accuracy: 0.8489 - val_loss: 0.4252 - val_accuracy: 0.8182
Epoch 20/150
9/9 [==============================] - 0s 14ms/step - loss: 0.3868 - accuracy: 0.8489 - val_loss: 0.4246 - val_accuracy: 0.8252
Epoch 21/150
9/9 [==============================] - 0s 15ms/step - loss: 0.3808 - accuracy: 0.8471 - val_loss: 0.4245 - val_accuracy: 0.8252
Epoch 22/150
9/9 [==============================] - 0s 16ms/step - loss: 0.3761 - accuracy: 0.8506 - val_loss: 0.4229 - val_accuracy: 0.8252
Epoch 23/150
9/9 [==============================] - 0s 14ms/step - loss: 0.3720 - accuracy: 0.8524 - val_loss: 0.4224 - val_accuracy: 0.8252
Epoch 24/150
9/9 [==============================] - 0s 16ms/step - loss: 0.3695 - accuracy: 0.8559 - val_loss: 0.4209 - val_accuracy: 0.8252
Epoch 25/150
9/9 [==============================] - 0s 16ms/step - loss: 0.3658 - accuracy: 0.8541 - val_loss: 0.4203 - val_accuracy: 0.8252
Epoch 26/150
9/9 [==============================] - 0s 17ms/step - loss: 0.3635 - accuracy: 0.8541 - val_loss: 0.4193 - val_accuracy: 0.8252
Epoch 27/150
9/9 [==============================] - 0s 15ms/step - loss: 0.3599 - accuracy: 0.8559 - val_loss: 0.4201 - val_accuracy: 0.8252
Epoch 28/150
9/9 [==============================] - 0s 11ms/step - loss: 0.3586 - accuracy: 0.8559 - val_loss: 0.4193 - val_accuracy: 0.8182
Epoch 29/150
9/9 [==============================] - 0s 10ms/step - loss: 0.3567 - accuracy: 0.8559 - val_loss: 0.4158 - val_accuracy: 0.8182
Epoch 30/150
9/9 [==============================] - 0s 10ms/step - loss: 0.3545 - accuracy: 0.8594 - val_loss: 0.4151 - val_accuracy: 0.8182
Epoch 31/150
9/9 [==============================] - 0s 9ms/step - loss: 0.3527 - accuracy: 0.8576 - val_loss: 0.4140 - val_accuracy: 0.8182
Epoch 32/150
9/9 [==============================] - 0s 10ms/step - loss: 0.3509 - accuracy: 0.8594 - val_loss: 0.4137 - val_accuracy: 0.8182
Epoch 33/150
9/9 [==============================] - 0s 12ms/step - loss: 0.3487 - accuracy: 0.8612 - val_loss: 0.4123 - val_accuracy: 0.8252
Epoch 34/150
9/9 [==============================] - 0s 10ms/step - loss: 0.3473 - accuracy: 0.8594 - val_loss: 0.4128 - val_accuracy: 0.8322
Epoch 35/150
9/9 [==============================] - 0s 11ms/step - loss: 0.3460 - accuracy: 0.8612 - val_loss: 0.4110 - val_accuracy: 0.8182
Epoch 36/150
9/9 [==============================] - 0s 9ms/step - loss: 0.3450 - accuracy: 0.8559 - val_loss: 0.4109 - val_accuracy: 0.8182
Epoch 37/150
9/9 [==============================] - 0s 8ms/step - loss: 0.3426 - accuracy: 0.8629 - val_loss: 0.4088 - val_accuracy: 0.8322
Epoch 38/150
9/9 [==============================] - 0s 11ms/step - loss: 0.3424 - accuracy: 0.8647 - val_loss: 0.4077 - val_accuracy: 0.8322
Epoch 39/150
9/9 [==============================] - 0s 9ms/step - loss: 0.3412 - accuracy: 0.8559 - val_loss: 0.4079 - val_accuracy: 0.8112
Epoch 40/150
9/9 [==============================] - 0s 10ms/step - loss: 0.3396 - accuracy: 0.8612 - val_loss: 0.4062 - val_accuracy: 0.8322
Epoch 41/150
9/9 [==============================] - 0s 9ms/step - loss: 0.3377 - accuracy: 0.8664 - val_loss: 0.4061 - val_accuracy: 0.8322
Epoch 42/150
9/9 [==============================] - 0s 8ms/step - loss: 0.3366 - accuracy: 0.8594 - val_loss: 0.4058 - val_accuracy: 0.8112
Epoch 43/150
9/9 [==============================] - 0s 8ms/step - loss: 0.3355 - accuracy: 0.8629 - val_loss: 0.4045 - val_accuracy: 0.8322
Epoch 44/150
9/9 [==============================] - 0s 8ms/step - loss: 0.3353 - accuracy: 0.8647 - val_loss: 0.4047 - val_accuracy: 0.8392
Epoch 45/150
9/9 [==============================] - 0s 10ms/step - loss: 0.3344 - accuracy: 0.8664 - val_loss: 0.4051 - val_accuracy: 0.8322
Epoch 46/150
9/9 [==============================] - 0s 9ms/step - loss: 0.3338 - accuracy: 0.8629 - val_loss: 0.4049 - val_accuracy: 0.8462
Epoch 47/150
9/9 [==============================] - 0s 11ms/step - loss: 0.3309 - accuracy: 0.8717 - val_loss: 0.4026 - val_accuracy: 0.8392
Epoch 48/150
9/9 [==============================] - 0s 10ms/step - loss: 0.3310 - accuracy: 0.8682 - val_loss: 0.4014 - val_accuracy: 0.8322
Epoch 49/150
9/9 [==============================] - 0s 9ms/step - loss: 0.3280 - accuracy: 0.8717 - val_loss: 0.4019 - val_accuracy: 0.8112
Epoch 50/150
9/9 [==============================] - 0s 8ms/step - loss: 0.3283 - accuracy: 0.8770 - val_loss: 0.4019 - val_accuracy: 0.8322
Epoch 51/150
9/9 [==============================] - 0s 9ms/step - loss: 0.3289 - accuracy: 0.8717 - val_loss: 0.4021 - val_accuracy: 0.8462
Epoch 52/150
9/9 [==============================] - 0s 10ms/step - loss: 0.3261 - accuracy: 0.8735 - val_loss: 0.4023 - val_accuracy: 0.8322
Epoch 53/150
9/9 [==============================] - 0s 11ms/step - loss: 0.3239 - accuracy: 0.8787 - val_loss: 0.4026 - val_accuracy: 0.8322
Epoch 54/150
9/9 [==============================] - 0s 9ms/step - loss: 0.3251 - accuracy: 0.8735 - val_loss: 0.4000 - val_accuracy: 0.8322
Epoch 55/150
9/9 [==============================] - 0s 8ms/step - loss: 0.3235 - accuracy: 0.8717 - val_loss: 0.4020 - val_accuracy: 0.8322
Epoch 56/150
9/9 [==============================] - 0s 9ms/step - loss: 0.3206 - accuracy: 0.8805 - val_loss: 0.4008 - val_accuracy: 0.8322
Epoch 57/150
9/9 [==============================] - 0s 8ms/step - loss: 0.3192 - accuracy: 0.8752 - val_loss: 0.4007 - val_accuracy: 0.8322
Epoch 58/150
9/9 [==============================] - 0s 9ms/step - loss: 0.3191 - accuracy: 0.8735 - val_loss: 0.4022 - val_accuracy: 0.8392
Epoch 59/150
9/9 [==============================] - 0s 10ms/step - loss: 0.3185 - accuracy: 0.8787 - val_loss: 0.4003 - val_accuracy: 0.8462
Epoch 60/150
9/9 [==============================] - 0s 9ms/step - loss: 0.3182 - accuracy: 0.8840 - val_loss: 0.4029 - val_accuracy: 0.8531
Epoch 61/150
9/9 [==============================] - 0s 9ms/step - loss: 0.3151 - accuracy: 0.8822 - val_loss: 0.4018 - val_accuracy: 0.8462
Epoch 62/150
9/9 [==============================] - 0s 9ms/step - loss: 0.3135 - accuracy: 0.8805 - val_loss: 0.4026 - val_accuracy: 0.8462
Epoch 63/150
9/9 [==============================] - 0s 8ms/step - loss: 0.3135 - accuracy: 0.8805 - val_loss: 0.4010 - val_accuracy: 0.8392
Epoch 64/150
9/9 [==============================] - 0s 9ms/step - loss: 0.3134 - accuracy: 0.8858 - val_loss: 0.4019 - val_accuracy: 0.8392
Epoch 65/150
9/9 [==============================] - 0s 10ms/step - loss: 0.3125 - accuracy: 0.8822 - val_loss: 0.4041 - val_accuracy: 0.8531
Epoch 66/150
9/9 [==============================] - 0s 10ms/step - loss: 0.3106 - accuracy: 0.8840 - val_loss: 0.4035 - val_accuracy: 0.8531
Epoch 67/150
9/9 [==============================] - 0s 8ms/step - loss: 0.3079 - accuracy: 0.8946 - val_loss: 0.4032 - val_accuracy: 0.8531
Epoch 68/150
9/9 [==============================] - 0s 8ms/step - loss: 0.3071 - accuracy: 0.8928 - val_loss: 0.4017 - val_accuracy: 0.8531
Epoch 69/150
9/9 [==============================] - 0s 10ms/step - loss: 0.3071 - accuracy: 0.8893 - val_loss: 0.4026 - val_accuracy: 0.8462
Epoch 70/150
9/9 [==============================] - 0s 10ms/step - loss: 0.3061 - accuracy: 0.8893 - val_loss: 0.4060 - val_accuracy: 0.8531
Epoch 71/150
9/9 [==============================] - 0s 10ms/step - loss: 0.3048 - accuracy: 0.8928 - val_loss: 0.4049 - val_accuracy: 0.8671
Epoch 72/150
9/9 [==============================] - 0s 9ms/step - loss: 0.3043 - accuracy: 0.8946 - val_loss: 0.4056 - val_accuracy: 0.8462
Epoch 73/150
9/9 [==============================] - 0s 11ms/step - loss: 0.3025 - accuracy: 0.8946 - val_loss: 0.4064 - val_accuracy: 0.8671
Epoch 74/150
9/9 [==============================] - 0s 10ms/step - loss: 0.3017 - accuracy: 0.8998 - val_loss: 0.4070 - val_accuracy: 0.8601
Epoch 75/150
9/9 [==============================] - 0s 9ms/step - loss: 0.3011 - accuracy: 0.8946 - val_loss: 0.4092 - val_accuracy: 0.8462
Epoch 76/150
9/9 [==============================] - 0s 8ms/step - loss: 0.3000 - accuracy: 0.8928 - val_loss: 0.4104 - val_accuracy: 0.8601
Epoch 77/150
9/9 [==============================] - 0s 10ms/step - loss: 0.2987 - accuracy: 0.8998 - val_loss: 0.4076 - val_accuracy: 0.8531
Epoch 78/150
9/9 [==============================] - 0s 10ms/step - loss: 0.2985 - accuracy: 0.9016 - val_loss: 0.4104 - val_accuracy: 0.8531
Epoch 79/150
9/9 [==============================] - 0s 11ms/step - loss: 0.2964 - accuracy: 0.8963 - val_loss: 0.4119 - val_accuracy: 0.8531
Epoch 80/150
9/9 [==============================] - 0s 10ms/step - loss: 0.2963 - accuracy: 0.8963 - val_loss: 0.4133 - val_accuracy: 0.8601
Epoch 81/150
9/9 [==============================] - 0s 10ms/step - loss: 0.2955 - accuracy: 0.9033 - val_loss: 0.4117 - val_accuracy: 0.8531
Epoch 82/150
9/9 [==============================] - 0s 9ms/step - loss: 0.2947 - accuracy: 0.9033 - val_loss: 0.4138 - val_accuracy: 0.8601
Epoch 83/150
9/9 [==============================] - 0s 9ms/step - loss: 0.2943 - accuracy: 0.9016 - val_loss: 0.4175 - val_accuracy: 0.8462
Epoch 84/150
9/9 [==============================] - 0s 9ms/step - loss: 0.2938 - accuracy: 0.8998 - val_loss: 0.4155 - val_accuracy: 0.8462
Epoch 85/150
9/9 [==============================] - 0s 10ms/step - loss: 0.2927 - accuracy: 0.8963 - val_loss: 0.4198 - val_accuracy: 0.8531
Epoch 86/150
9/9 [==============================] - 0s 11ms/step - loss: 0.2912 - accuracy: 0.9033 - val_loss: 0.4184 - val_accuracy: 0.8462
Epoch 87/150
9/9 [==============================] - 0s 11ms/step - loss: 0.2907 - accuracy: 0.8998 - val_loss: 0.4209 - val_accuracy: 0.8531
Epoch 88/150
9/9 [==============================] - 0s 11ms/step - loss: 0.2901 - accuracy: 0.9051 - val_loss: 0.4197 - val_accuracy: 0.8462
Epoch 89/150
9/9 [==============================] - 0s 11ms/step - loss: 0.2892 - accuracy: 0.9033 - val_loss: 0.4200 - val_accuracy: 0.8531
Epoch 90/150
9/9 [==============================] - 0s 11ms/step - loss: 0.2889 - accuracy: 0.9033 - val_loss: 0.4247 - val_accuracy: 0.8531
Epoch 91/150
9/9 [==============================] - 0s 9ms/step - loss: 0.2871 - accuracy: 0.9051 - val_loss: 0.4220 - val_accuracy: 0.8531
Epoch 92/150
9/9 [==============================] - 0s 9ms/step - loss: 0.2862 - accuracy: 0.9051 - val_loss: 0.4216 - val_accuracy: 0.8601
Epoch 93/150
9/9 [==============================] - 0s 10ms/step - loss: 0.2859 - accuracy: 0.9051 - val_loss: 0.4261 - val_accuracy: 0.8531
Epoch 94/150
9/9 [==============================] - 0s 11ms/step - loss: 0.2871 - accuracy: 0.9016 - val_loss: 0.4281 - val_accuracy: 0.8462
Epoch 95/150
9/9 [==============================] - 0s 11ms/step - loss: 0.2867 - accuracy: 0.8998 - val_loss: 0.4295 - val_accuracy: 0.8531
Epoch 96/150
9/9 [==============================] - 0s 9ms/step - loss: 0.2909 - accuracy: 0.9051 - val_loss: 0.4253 - val_accuracy: 0.8531
Epoch 97/150
9/9 [==============================] - 0s 8ms/step - loss: 0.2832 - accuracy: 0.9069 - val_loss: 0.4316 - val_accuracy: 0.8462
Epoch 98/150
9/9 [==============================] - 0s 9ms/step - loss: 0.2818 - accuracy: 0.9033 - val_loss: 0.4284 - val_accuracy: 0.8531
Epoch 99/150
9/9 [==============================] - 0s 9ms/step - loss: 0.2813 - accuracy: 0.9086 - val_loss: 0.4298 - val_accuracy: 0.8462
Epoch 100/150
9/9 [==============================] - 0s 11ms/step - loss: 0.2805 - accuracy: 0.9104 - val_loss: 0.4337 - val_accuracy: 0.8392
Epoch 101/150
9/9 [==============================] - 0s 8ms/step - loss: 0.2797 - accuracy: 0.9069 - val_loss: 0.4328 - val_accuracy: 0.8531
Epoch 102/150
9/9 [==============================] - 0s 11ms/step - loss: 0.2790 - accuracy: 0.9069 - val_loss: 0.4369 - val_accuracy: 0.8462
Epoch 103/150
9/9 [==============================] - 0s 9ms/step - loss: 0.2789 - accuracy: 0.9104 - val_loss: 0.4349 - val_accuracy: 0.8531
Epoch 104/150
9/9 [==============================] - 0s 13ms/step - loss: 0.2775 - accuracy: 0.9086 - val_loss: 0.4376 - val_accuracy: 0.8462
Epoch 105/150
9/9 [==============================] - 0s 9ms/step - loss: 0.2813 - accuracy: 0.8981 - val_loss: 0.4407 - val_accuracy: 0.8462
Epoch 106/150
9/9 [==============================] - 0s 10ms/step - loss: 0.2770 - accuracy: 0.9051 - val_loss: 0.4350 - val_accuracy: 0.8462
Epoch 107/150
9/9 [==============================] - 0s 11ms/step - loss: 0.2772 - accuracy: 0.9086 - val_loss: 0.4451 - val_accuracy: 0.8462
Epoch 108/150
9/9 [==============================] - 0s 16ms/step - loss: 0.2763 - accuracy: 0.9051 - val_loss: 0.4422 - val_accuracy: 0.8392
Epoch 109/150
9/9 [==============================] - 0s 15ms/step - loss: 0.2748 - accuracy: 0.9121 - val_loss: 0.4450 - val_accuracy: 0.8462
Epoch 110/150
9/9 [==============================] - 0s 16ms/step - loss: 0.2758 - accuracy: 0.9086 - val_loss: 0.4408 - val_accuracy: 0.8462
Epoch 111/150
9/9 [==============================] - 0s 12ms/step - loss: 0.2756 - accuracy: 0.9086 - val_loss: 0.4493 - val_accuracy: 0.8392
Epoch 112/150
9/9 [==============================] - 0s 14ms/step - loss: 0.2752 - accuracy: 0.9086 - val_loss: 0.4455 - val_accuracy: 0.8462
Epoch 113/150
9/9 [==============================] - 0s 14ms/step - loss: 0.2740 - accuracy: 0.9121 - val_loss: 0.4477 - val_accuracy: 0.8392
Epoch 114/150
9/9 [==============================] - 0s 13ms/step - loss: 0.2720 - accuracy: 0.9069 - val_loss: 0.4497 - val_accuracy: 0.8392
Epoch 115/150
9/9 [==============================] - 0s 13ms/step - loss: 0.2699 - accuracy: 0.9104 - val_loss: 0.4491 - val_accuracy: 0.8392
Epoch 116/150
9/9 [==============================] - 0s 14ms/step - loss: 0.2711 - accuracy: 0.9086 - val_loss: 0.4524 - val_accuracy: 0.8462
Epoch 117/150
9/9 [==============================] - 0s 17ms/step - loss: 0.2721 - accuracy: 0.9016 - val_loss: 0.4528 - val_accuracy: 0.8462
Epoch 118/150
9/9 [==============================] - 0s 18ms/step - loss: 0.2708 - accuracy: 0.9121 - val_loss: 0.4475 - val_accuracy: 0.8462
Epoch 119/150
9/9 [==============================] - 0s 14ms/step - loss: 0.2679 - accuracy: 0.9069 - val_loss: 0.4540 - val_accuracy: 0.8462
Epoch 120/150
9/9 [==============================] - 0s 17ms/step - loss: 0.2726 - accuracy: 0.9016 - val_loss: 0.4533 - val_accuracy: 0.8462
Epoch 121/150
9/9 [==============================] - 0s 15ms/step - loss: 0.2736 - accuracy: 0.9069 - val_loss: 0.4517 - val_accuracy: 0.8392
Epoch 122/150
9/9 [==============================] - 0s 16ms/step - loss: 0.2670 - accuracy: 0.9033 - val_loss: 0.4586 - val_accuracy: 0.8462
Epoch 123/150
9/9 [==============================] - 0s 15ms/step - loss: 0.2681 - accuracy: 0.9051 - val_loss: 0.4560 - val_accuracy: 0.8392
Epoch 124/150
9/9 [==============================] - 0s 15ms/step - loss: 0.2680 - accuracy: 0.9104 - val_loss: 0.4657 - val_accuracy: 0.8392
Epoch 125/150
9/9 [==============================] - 0s 16ms/step - loss: 0.2647 - accuracy: 0.9121 - val_loss: 0.4604 - val_accuracy: 0.8392
Epoch 126/150
9/9 [==============================] - 0s 13ms/step - loss: 0.2639 - accuracy: 0.9104 - val_loss: 0.4591 - val_accuracy: 0.8392
Epoch 127/150
9/9 [==============================] - 0s 14ms/step - loss: 0.2632 - accuracy: 0.9086 - val_loss: 0.4615 - val_accuracy: 0.8392
Epoch 128/150
9/9 [==============================] - 0s 16ms/step - loss: 0.2664 - accuracy: 0.9104 - val_loss: 0.4614 - val_accuracy: 0.8392
Epoch 129/150
9/9 [==============================] - 0s 15ms/step - loss: 0.2601 - accuracy: 0.9121 - val_loss: 0.4698 - val_accuracy: 0.8392
Epoch 130/150
9/9 [==============================] - 0s 17ms/step - loss: 0.2615 - accuracy: 0.9121 - val_loss: 0.4667 - val_accuracy: 0.8392
Epoch 131/150
9/9 [==============================] - 0s 16ms/step - loss: 0.2621 - accuracy: 0.9121 - val_loss: 0.4665 - val_accuracy: 0.8392
Epoch 132/150
9/9 [==============================] - 0s 14ms/step - loss: 0.2646 - accuracy: 0.9016 - val_loss: 0.4735 - val_accuracy: 0.8462
Epoch 133/150
9/9 [==============================] - 0s 18ms/step - loss: 0.2636 - accuracy: 0.9104 - val_loss: 0.4720 - val_accuracy: 0.8392
Epoch 134/150
9/9 [==============================] - 0s 15ms/step - loss: 0.2622 - accuracy: 0.9069 - val_loss: 0.4792 - val_accuracy: 0.8392
Epoch 135/150
9/9 [==============================] - 0s 16ms/step - loss: 0.2576 - accuracy: 0.9104 - val_loss: 0.4735 - val_accuracy: 0.8392
Epoch 136/150
9/9 [==============================] - 0s 17ms/step - loss: 0.2594 - accuracy: 0.9104 - val_loss: 0.4764 - val_accuracy: 0.8392
Epoch 137/150
9/9 [==============================] - 0s 14ms/step - loss: 0.2570 - accuracy: 0.9086 - val_loss: 0.4808 - val_accuracy: 0.8392
Epoch 138/150
9/9 [==============================] - 0s 15ms/step - loss: 0.2560 - accuracy: 0.9121 - val_loss: 0.4794 - val_accuracy: 0.8392
Epoch 139/150
9/9 [==============================] - 0s 9ms/step - loss: 0.2554 - accuracy: 0.9121 - val_loss: 0.4871 - val_accuracy: 0.8392
Epoch 140/150
9/9 [==============================] - 0s 9ms/step - loss: 0.2569 - accuracy: 0.9121 - val_loss: 0.4829 - val_accuracy: 0.8392
Epoch 141/150
9/9 [==============================] - 0s 9ms/step - loss: 0.2563 - accuracy: 0.9086 - val_loss: 0.4843 - val_accuracy: 0.8392
Epoch 142/150
9/9 [==============================] - 0s 8ms/step - loss: 0.2517 - accuracy: 0.9139 - val_loss: 0.4870 - val_accuracy: 0.8392
Epoch 143/150
9/9 [==============================] - 0s 10ms/step - loss: 0.2543 - accuracy: 0.9086 - val_loss: 0.4905 - val_accuracy: 0.8392
Epoch 144/150
9/9 [==============================] - 0s 8ms/step - loss: 0.2526 - accuracy: 0.9104 - val_loss: 0.4916 - val_accuracy: 0.8392
Epoch 145/150
9/9 [==============================] - 0s 11ms/step - loss: 0.2517 - accuracy: 0.9121 - val_loss: 0.4927 - val_accuracy: 0.8392
Epoch 146/150
9/9 [==============================] - 0s 11ms/step - loss: 0.2515 - accuracy: 0.9139 - val_loss: 0.5003 - val_accuracy: 0.8392
Epoch 147/150
9/9 [==============================] - 0s 9ms/step - loss: 0.2490 - accuracy: 0.9139 - val_loss: 0.4959 - val_accuracy: 0.8322
Epoch 148/150
9/9 [==============================] - 0s 10ms/step - loss: 0.2522 - accuracy: 0.9069 - val_loss: 0.4989 - val_accuracy: 0.8392
Epoch 149/150
9/9 [==============================] - 0s 9ms/step - loss: 0.2520 - accuracy: 0.9121 - val_loss: 0.4988 - val_accuracy: 0.8392
Epoch 150/150
9/9 [==============================] - 0s 8ms/step - loss: 0.2484 - accuracy: 0.9121 - val_loss: 0.5047 - val_accuracy: 0.8392

Model Accuracy and Loss with Epochs¶

In [128]:
#Plotting Train Loss vs Validation Loss
plt.plot(history_keras.history['loss'])
plt.plot(history_keras.history['val_loss'])
plt.title('model loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend(['train', 'validation'], loc='upper left')
plt.show()
In [129]:
#Plotting Epoch vs accuracy
plt.plot(history_keras.history['accuracy'])
plt.plot(history_keras.history['val_accuracy'])
plt.title('Accuracy vs Epochs')
plt.ylabel('Accuracy')
plt.xlabel('Epoch')
plt.legend(['Train', 'Validation'], loc='lower right')
plt.show()

Model Performance on training data¶

In [130]:
# Using the model to make predictions on the training data
y_train_pred = modelkeras.predict(x_train_scaled)

#Set the threshold of classification to be 0.5
y_train_pred = (y_train_pred > 0.5)

#Performance of model on training data
metrics_score(y_train,y_train_pred)
23/23 [==============================] - 0s 2ms/step
              precision    recall  f1-score   support

           0       0.89      0.95      0.92       443
           1       0.91      0.81      0.86       269

    accuracy                           0.90       712
   macro avg       0.90      0.88      0.89       712
weighted avg       0.90      0.90      0.90       712

Model Performance with validation data¶

In [131]:
#Making prediction using the model on the validation data to peformance metric.
y_pred=modelkeras.predict(x_test_scaled)

#Set the threshold of classification to be 0.5
y_pred = (y_pred > 0.5)

#Performance on validation data
metrics_score(y_test,y_pred)
6/6 [==============================] - 0s 3ms/step
              precision    recall  f1-score   support

           0       0.76      0.84      0.80       106
           1       0.73      0.62      0.67        73

    accuracy                           0.75       179
   macro avg       0.74      0.73      0.73       179
weighted avg       0.75      0.75      0.74       179

ROC-AUC Tuning¶

In [132]:
# predict probabilities
yhatkeras = modelkeras.predict(x_test_scaled)

# keep probabilities for the positive outcome only
yhatkeras = yhatkeras[:, 0]

# calculate roc curves
fpr, tpr, thresholdskeras = roc_curve(y_test, yhatkeras)

# calculate the g-mean for each threshold
gmeanskeras = np.sqrt(tpr * (1-fpr))

# locate the index of the largest g-mean
ix = np.argmax(gmeanskeras)
print('Best Threshold=%f, G-Mean=%.3f' % (thresholdskeras[ix], gmeanskeras[ix]))

# plot the roc curve for the model
pyplot.plot([0,1], [0,1], linestyle='--', label='No Skill')
pyplot.plot(fpr, tpr, marker='.')
pyplot.scatter(fpr[ix], tpr[ix], marker='o', color='black', label='Best')

# axis labels
pyplot.xlabel('False Positive Rate')
pyplot.ylabel('True Positive Rate')
pyplot.legend()

# show the plot
pyplot.show()
6/6 [==============================] - 0s 2ms/step
Best Threshold=0.150022, G-Mean=0.769
In [133]:
#Making the prediction using the test data
y_pred_e4=modelkeras.predict(x_test_scaled)

#Using the threshold value to convert the predicted data into true or false statements. If the predicted data is higher than threshold, it will be labelled true.
y_pred_e4 = (y_pred_e4 > thresholdskeras[ix])

metrics_score(y_test, y_pred_e4)
6/6 [==============================] - 0s 3ms/step
              precision    recall  f1-score   support

           0       0.85      0.71      0.77       106
           1       0.66      0.82      0.73        73

    accuracy                           0.75       179
   macro avg       0.76      0.76      0.75       179
weighted avg       0.77      0.75      0.76       179

Observations¶

  • Performance on trianing data raised from 85% to 89%.
  • But the performance on validation data dropped to 75%.This big difference is a sign of overfitting
  • AUC-ROC tuning then improves the accuracy to 77%, which is still lower than model 4.
  • The accuracy of the model increases with 77 epochs, but began to drop after 80.
  • Overfitting is very obvious beyond 80 epochs, as the accuracy of validation dataset continues to drop with more epoch.

Recommendations:

  • So we will still try to optimize model 4 instead of the one created by keras tuner.

Model 5: Dask Tuner on Model 4¶

Import Dask libraries¶

In [ ]:
# Try below code to install dask in Google Colab
!pip install dask-ml
Collecting dask-ml
  Downloading dask_ml-2024.4.4-py3-none-any.whl (149 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 149.8/149.8 kB 2.9 MB/s eta 0:00:00
Collecting dask-glm>=0.2.0 (from dask-ml)
  Downloading dask_glm-0.3.2-py2.py3-none-any.whl (13 kB)
Requirement already satisfied: dask[array,dataframe]>=2.4.0 in /usr/local/lib/python3.10/dist-packages (from dask-ml) (2023.8.1)
Requirement already satisfied: distributed>=2.4.0 in /usr/local/lib/python3.10/dist-packages (from dask-ml) (2023.8.1)
Requirement already satisfied: multipledispatch>=0.4.9 in /usr/local/lib/python3.10/dist-packages (from dask-ml) (1.0.0)
Requirement already satisfied: numba>=0.51.0 in /usr/local/lib/python3.10/dist-packages (from dask-ml) (0.58.1)
Requirement already satisfied: numpy>=1.20.0 in /usr/local/lib/python3.10/dist-packages (from dask-ml) (1.23.5)
Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from dask-ml) (24.0)
Requirement already satisfied: pandas>=0.24.2 in /usr/local/lib/python3.10/dist-packages (from dask-ml) (2.0.3)
Requirement already satisfied: scikit-learn>=1.2.0 in /usr/local/lib/python3.10/dist-packages (from dask-ml) (1.2.2)
Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from dask-ml) (1.11.4)
Requirement already satisfied: cloudpickle>=0.2.2 in /usr/local/lib/python3.10/dist-packages (from dask-glm>=0.2.0->dask-ml) (2.2.1)
Collecting sparse>=0.7.0 (from dask-glm>=0.2.0->dask-ml)
  Downloading sparse-0.15.1-py2.py3-none-any.whl (116 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 116.3/116.3 kB 6.3 MB/s eta 0:00:00
Requirement already satisfied: click>=8.0 in /usr/local/lib/python3.10/dist-packages (from dask[array,dataframe]>=2.4.0->dask-ml) (8.1.7)
Requirement already satisfied: fsspec>=2021.09.0 in /usr/local/lib/python3.10/dist-packages (from dask[array,dataframe]>=2.4.0->dask-ml) (2023.6.0)
Requirement already satisfied: partd>=1.2.0 in /usr/local/lib/python3.10/dist-packages (from dask[array,dataframe]>=2.4.0->dask-ml) (1.4.1)
Requirement already satisfied: pyyaml>=5.3.1 in /usr/local/lib/python3.10/dist-packages (from dask[array,dataframe]>=2.4.0->dask-ml) (6.0.1)
Requirement already satisfied: toolz>=0.10.0 in /usr/local/lib/python3.10/dist-packages (from dask[array,dataframe]>=2.4.0->dask-ml) (0.12.1)
Requirement already satisfied: importlib-metadata>=4.13.0 in /usr/local/lib/python3.10/dist-packages (from dask[array,dataframe]>=2.4.0->dask-ml) (7.1.0)
Requirement already satisfied: jinja2>=2.10.3 in /usr/local/lib/python3.10/dist-packages (from distributed>=2.4.0->dask-ml) (3.1.3)
Requirement already satisfied: locket>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from distributed>=2.4.0->dask-ml) (1.0.0)
Requirement already satisfied: msgpack>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from distributed>=2.4.0->dask-ml) (1.0.8)
Requirement already satisfied: psutil>=5.7.2 in /usr/local/lib/python3.10/dist-packages (from distributed>=2.4.0->dask-ml) (5.9.5)
Requirement already satisfied: sortedcontainers>=2.0.5 in /usr/local/lib/python3.10/dist-packages (from distributed>=2.4.0->dask-ml) (2.4.0)
Requirement already satisfied: tblib>=1.6.0 in /usr/local/lib/python3.10/dist-packages (from distributed>=2.4.0->dask-ml) (3.0.0)
Requirement already satisfied: tornado>=6.0.4 in /usr/local/lib/python3.10/dist-packages (from distributed>=2.4.0->dask-ml) (6.3.3)
Requirement already satisfied: urllib3>=1.24.3 in /usr/local/lib/python3.10/dist-packages (from distributed>=2.4.0->dask-ml) (2.0.7)
Requirement already satisfied: zict>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from distributed>=2.4.0->dask-ml) (3.0.0)
Requirement already satisfied: llvmlite<0.42,>=0.41.0dev0 in /usr/local/lib/python3.10/dist-packages (from numba>=0.51.0->dask-ml) (0.41.1)
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.24.2->dask-ml) (2.8.2)
Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.24.2->dask-ml) (2023.4)
Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=0.24.2->dask-ml) (2024.1)
Requirement already satisfied: joblib>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=1.2.0->dask-ml) (1.4.0)
Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=1.2.0->dask-ml) (3.4.0)
Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.10/dist-packages (from importlib-metadata>=4.13.0->dask[array,dataframe]>=2.4.0->dask-ml) (3.18.1)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2>=2.10.3->distributed>=2.4.0->dask-ml) (2.1.5)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.2->pandas>=0.24.2->dask-ml) (1.16.0)
Installing collected packages: sparse, dask-glm, dask-ml
Successfully installed dask-glm-0.3.2 dask-ml-2024.4.4 sparse-0.15.1
In [ ]:
# importing library
from dask_ml.model_selection import GridSearchCV as DaskGridSearchCV

Dask Tuning of Parameters¶

In [ ]:
def create_model(lr,batch_size,dropout1,dropout2):

    # Fixing the seed for random number generators
    np.random.seed(42)

    # Initialize sequential model
    model = Sequential()
    model.add(Dense(64, activation='leaky_relu', input_dim = x_train.shape[1])) # Add the input layer and the first layer
    model.add(Dropout(dropout1))
    model.add(BatchNormalization())
    model.add(Dense(64,activation='leaky_relu'))
    model.add(Dropout(dropout2))
    model.add(BatchNormalization())
    # model.add(Dense(64,activation='leaky_relu'))
    # model.add(Dropout(dropout))
    # model.add(BatchNormalization())
    # model.add(Dense(32,activation='leaky_relu'))
    # model.add(Dropout(dropout))
    # model.add(BatchNormalization())
    model.add(Dense(1, activation='sigmoid'))

    #Defining the optimizer and learnign rate
    optimizer = Adamax(learning_rate = lr)

    #Using the settings for the sequential model above, create the model with the following algorithms
    model.compile(loss = 'binary_crossentropy',
                    optimizer = optimizer,
                    metrics=['accuracy'])

    return model
In [ ]:
#Reset the session
backend.clear_session()
np.random.seed(42)
random.seed(42)
tf.random.set_seed(42)

# define the grid search parameters
param_dask = {'batch_size':[32, 64, 128],
              "lr":[0.0003, 0.0005, 0.0007, 0.001],
              'dropout1':[0.1, 0.2, 0.3],
              'dropout2':[0.1, 0.2, 0.3]}

#Create the classifer
keras_estimator = KerasClassifier(build_fn=create_model,
                                  epochs = 150,
                                  batch_size = 0,
                                  verbose=1)

#Dask Tuner setting
kfold_splits = 3
dask = DaskGridSearchCV(estimator=keras_estimator,
                        cv=kfold_splits,
                        param_grid=param_dask,
                        n_jobs=-1)
In [ ]:
import time

# store starting time
begin = time.time()

#Fit the optimizer
dask_result = dask.fit(x_train_scaled, y_train,validation_split=0.2,verbose=1)

# Summarize results
print("Best: %f using %s" % (dask_result.best_score_, dask_result.best_params_))

# store end time (Took almost 3 hours to run during tests)
time.sleep(1)
end = time.time()

# total time taken
print(f"Total runtime of the program is {end - begin}")
Streaming output truncated to the last 5000 lines.
Epoch 133/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4080 - accuracy: 0.8132 - val_loss: 0.3746 - val_accuracy: 0.8737
Epoch 79/150
3/3 [==============================] - 0s 85ms/step - loss: 0.3995 - accuracy: 0.8526 - val_loss: 0.4688 - val_accuracy: 0.7789
Epoch 134/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4405 - accuracy: 0.7921 - val_loss: 0.3742 - val_accuracy: 0.8737
Epoch 80/150
3/3 [==============================] - 0s 77ms/step - loss: 0.3744 - accuracy: 0.8500 - val_loss: 0.4693 - val_accuracy: 0.7789
Epoch 135/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4017 - accuracy: 0.8132 - val_loss: 0.3737 - val_accuracy: 0.8737
Epoch 81/150
3/3 [==============================] - 0s 80ms/step - loss: 0.3978 - accuracy: 0.8526 - val_loss: 0.4697 - val_accuracy: 0.7789
Epoch 136/150
3/3 [==============================] - 0s 70ms/step - loss: 0.4068 - accuracy: 0.8184 - val_loss: 0.3732 - val_accuracy: 0.8737
Epoch 82/150
3/3 [==============================] - 0s 88ms/step - loss: 0.4205 - accuracy: 0.8026 - val_loss: 0.3723 - val_accuracy: 0.8737
Epoch 83/150
3/3 [==============================] - 0s 120ms/step - loss: 0.3973 - accuracy: 0.8500 - val_loss: 0.4693 - val_accuracy: 0.7895
Epoch 137/150
3/3 [==============================] - 0s 80ms/step - loss: 0.4157 - accuracy: 0.8237 - val_loss: 0.3714 - val_accuracy: 0.8737
Epoch 84/150
3/3 [==============================] - 0s 94ms/step - loss: 0.4093 - accuracy: 0.8395 - val_loss: 0.4688 - val_accuracy: 0.7895
Epoch 138/150
3/3 [==============================] - 0s 106ms/step - loss: 0.4015 - accuracy: 0.8421 - val_loss: 0.3704 - val_accuracy: 0.8737
Epoch 85/150
3/3 [==============================] - 0s 97ms/step - loss: 0.4146 - accuracy: 0.8368 - val_loss: 0.4681 - val_accuracy: 0.7895
Epoch 139/150
3/3 [==============================] - 0s 93ms/step - loss: 0.4225 - accuracy: 0.8026 - val_loss: 0.3694 - val_accuracy: 0.8737
Epoch 86/150
3/3 [==============================] - 0s 86ms/step - loss: 0.4122 - accuracy: 0.8263 - val_loss: 0.4680 - val_accuracy: 0.8000
Epoch 140/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4258 - accuracy: 0.8211 - val_loss: 0.3680 - val_accuracy: 0.8737
Epoch 87/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4041 - accuracy: 0.8474 - val_loss: 0.4681 - val_accuracy: 0.8000
Epoch 141/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4317 - accuracy: 0.8053 - val_loss: 0.3668 - val_accuracy: 0.8737
Epoch 88/150
3/3 [==============================] - 0s 87ms/step - loss: 0.3939 - accuracy: 0.8316 - val_loss: 0.4681 - val_accuracy: 0.8000
Epoch 142/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4399 - accuracy: 0.8158 - val_loss: 0.3659 - val_accuracy: 0.8737
Epoch 89/150
3/3 [==============================] - 0s 87ms/step - loss: 0.3867 - accuracy: 0.8368 - val_loss: 0.4685 - val_accuracy: 0.8000
Epoch 143/150
3/3 [==============================] - 0s 83ms/step - loss: 0.3926 - accuracy: 0.8158 - val_loss: 0.3652 - val_accuracy: 0.8737
Epoch 90/150
3/3 [==============================] - 0s 91ms/step - loss: 0.4037 - accuracy: 0.8316 - val_loss: 0.4685 - val_accuracy: 0.8000
Epoch 144/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4258 - accuracy: 0.8211 - val_loss: 0.3646 - val_accuracy: 0.8737
Epoch 91/150
3/3 [==============================] - 0s 79ms/step - loss: 0.3781 - accuracy: 0.8421 - val_loss: 0.4686 - val_accuracy: 0.8000
Epoch 145/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4165 - accuracy: 0.8053 - val_loss: 0.3638 - val_accuracy: 0.8737
Epoch 92/150
3/3 [==============================] - 0s 87ms/step - loss: 0.4175 - accuracy: 0.8211 - val_loss: 0.4686 - val_accuracy: 0.8000
Epoch 146/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4305 - accuracy: 0.8184 - val_loss: 0.3632 - val_accuracy: 0.8737
Epoch 93/150
3/3 [==============================] - 0s 82ms/step - loss: 0.3944 - accuracy: 0.8395 - val_loss: 0.4687 - val_accuracy: 0.8000
Epoch 147/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4140 - accuracy: 0.8184 - val_loss: 0.3626 - val_accuracy: 0.8737
Epoch 94/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4412 - accuracy: 0.7921 - val_loss: 0.3627 - val_accuracy: 0.8737
Epoch 95/150
3/3 [==============================] - 0s 85ms/step - loss: 0.3849 - accuracy: 0.8342 - val_loss: 0.4687 - val_accuracy: 0.8000
Epoch 148/150
3/3 [==============================] - 0s 80ms/step - loss: 0.3919 - accuracy: 0.8263 - val_loss: 0.3629 - val_accuracy: 0.8737
Epoch 96/150
3/3 [==============================] - 0s 84ms/step - loss: 0.3900 - accuracy: 0.8342 - val_loss: 0.4688 - val_accuracy: 0.8000
1/3 [=========>....................] - ETA: 0s - loss: 0.3835 - accuracy: 0.8438Epoch 149/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4388 - accuracy: 0.8000 - val_loss: 0.3628 - val_accuracy: 0.8737
Epoch 97/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4188 - accuracy: 0.8368 - val_loss: 0.4688 - val_accuracy: 0.8000
Epoch 150/150
3/3 [==============================] - 0s 70ms/step - loss: 0.4355 - accuracy: 0.8053 - val_loss: 0.3628 - val_accuracy: 0.8737
Epoch 98/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4006 - accuracy: 0.8316 - val_loss: 0.4690 - val_accuracy: 0.8000
3/3 [==============================] - 0s 47ms/step - loss: 0.4235 - accuracy: 0.8079 - val_loss: 0.3632 - val_accuracy: 0.8737
Epoch 99/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4290 - accuracy: 0.8026 - val_loss: 0.3629 - val_accuracy: 0.8737
Epoch 100/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4065 - accuracy: 0.8184 - val_loss: 0.3632 - val_accuracy: 0.8737
Epoch 101/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4200 - accuracy: 0.8158 - val_loss: 0.3634 - val_accuracy: 0.8737
Epoch 102/150
3/3 [==============================] - 0s 42ms/step - loss: 0.4361 - accuracy: 0.8105 - val_loss: 0.3634 - val_accuracy: 0.8737
Epoch 103/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4557 - accuracy: 0.7947 - val_loss: 0.3633 - val_accuracy: 0.8737
Epoch 104/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4422 - accuracy: 0.8000 - val_loss: 0.3630 - val_accuracy: 0.8737
Epoch 105/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4403 - accuracy: 0.8079 - val_loss: 0.3628 - val_accuracy: 0.8737
Epoch 106/150
3/3 [==============================] - 0s 46ms/step - loss: 0.3863 - accuracy: 0.8237 - val_loss: 0.3625 - val_accuracy: 0.8737
Epoch 107/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4653 - accuracy: 0.7947 - val_loss: 0.3618 - val_accuracy: 0.8737
Epoch 108/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4272 - accuracy: 0.8026 - val_loss: 0.3615 - val_accuracy: 0.8737
Epoch 109/150
3/3 [==============================] - 0s 50ms/step - loss: 0.3943 - accuracy: 0.8289 - val_loss: 0.3610 - val_accuracy: 0.8737
Epoch 110/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4233 - accuracy: 0.7974 - val_loss: 0.3608 - val_accuracy: 0.8737
Epoch 111/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4121 - accuracy: 0.8105 - val_loss: 0.3604 - val_accuracy: 0.8737
Epoch 112/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4320 - accuracy: 0.8053 - val_loss: 0.3598 - val_accuracy: 0.8737
Epoch 113/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4183 - accuracy: 0.8026 - val_loss: 0.3596 - val_accuracy: 0.8737
Epoch 114/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4161 - accuracy: 0.8158 - val_loss: 0.3597 - val_accuracy: 0.8737
Epoch 115/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4258 - accuracy: 0.7921 - val_loss: 0.3592 - val_accuracy: 0.8737
Epoch 116/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4102 - accuracy: 0.8289 - val_loss: 0.3587 - val_accuracy: 0.8737
Epoch 117/150
3/3 [==============================] - 0s 49ms/step - loss: 0.3964 - accuracy: 0.8158 - val_loss: 0.3582 - val_accuracy: 0.8737
Epoch 118/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4074 - accuracy: 0.8211 - val_loss: 0.3576 - val_accuracy: 0.8632
Epoch 119/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4152 - accuracy: 0.8132 - val_loss: 0.3572 - val_accuracy: 0.8632
Epoch 120/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4286 - accuracy: 0.8237 - val_loss: 0.3571 - val_accuracy: 0.8632
Epoch 121/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4343 - accuracy: 0.8105 - val_loss: 0.3566 - val_accuracy: 0.8632
Epoch 122/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4070 - accuracy: 0.8211 - val_loss: 0.3561 - val_accuracy: 0.8632
Epoch 123/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4416 - accuracy: 0.8026 - val_loss: 0.3557 - val_accuracy: 0.8632
Epoch 124/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4200 - accuracy: 0.8000 - val_loss: 0.3556 - val_accuracy: 0.8632
Epoch 125/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4121 - accuracy: 0.8184 - val_loss: 0.3556 - val_accuracy: 0.8632
Epoch 126/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4105 - accuracy: 0.8158 - val_loss: 0.3555 - val_accuracy: 0.8632
Epoch 127/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4006 - accuracy: 0.8158 - val_loss: 0.3555 - val_accuracy: 0.8632
Epoch 128/150
3/3 [==============================] - 0s 50ms/step - loss: 0.3928 - accuracy: 0.8316 - val_loss: 0.3557 - val_accuracy: 0.8632
Epoch 129/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4164 - accuracy: 0.7921 - val_loss: 0.3562 - val_accuracy: 0.8737
Epoch 130/150
3/3 [==============================] - 0s 52ms/step - loss: 0.3995 - accuracy: 0.8132 - val_loss: 0.3565 - val_accuracy: 0.8737
Epoch 131/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4169 - accuracy: 0.8026 - val_loss: 0.3567 - val_accuracy: 0.8737
Epoch 132/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4166 - accuracy: 0.8158 - val_loss: 0.3571 - val_accuracy: 0.8737
Epoch 133/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4223 - accuracy: 0.8026 - val_loss: 0.3573 - val_accuracy: 0.8737
Epoch 134/150
3/3 [==============================] - 0s 37ms/step - loss: 0.4132 - accuracy: 0.8132 - val_loss: 0.3577 - val_accuracy: 0.8737
Epoch 135/150
3/3 [==============================] - 0s 62ms/step - loss: 0.3973 - accuracy: 0.8184 - val_loss: 0.3584 - val_accuracy: 0.8737
Epoch 136/150
3/3 [==============================] - 0s 60ms/step - loss: 0.3958 - accuracy: 0.8105 - val_loss: 0.3585 - val_accuracy: 0.8737
Epoch 137/150
3/3 [==============================] - 0s 58ms/step - loss: 0.3998 - accuracy: 0.8184 - val_loss: 0.3584 - val_accuracy: 0.8737
Epoch 138/150
3/3 [==============================] - 0s 46ms/step - loss: 0.3945 - accuracy: 0.8342 - val_loss: 0.3580 - val_accuracy: 0.8737
Epoch 139/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4094 - accuracy: 0.8105 - val_loss: 0.3578 - val_accuracy: 0.8737
Epoch 140/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4060 - accuracy: 0.8053 - val_loss: 0.3575 - val_accuracy: 0.8737
Epoch 141/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4500 - accuracy: 0.7842 - val_loss: 0.3569 - val_accuracy: 0.8737
Epoch 142/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4344 - accuracy: 0.8053 - val_loss: 0.3563 - val_accuracy: 0.8737
Epoch 143/150
3/3 [==============================] - 0s 65ms/step - loss: 0.3974 - accuracy: 0.8158 - val_loss: 0.3560 - val_accuracy: 0.8737
Epoch 144/150
3/3 [==============================] - 0s 61ms/step - loss: 0.3972 - accuracy: 0.8158 - val_loss: 0.3557 - val_accuracy: 0.8737
Epoch 145/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4110 - accuracy: 0.8184 - val_loss: 0.3551 - val_accuracy: 0.8737
Epoch 146/150
3/3 [==============================] - 0s 49ms/step - loss: 0.4183 - accuracy: 0.7842 - val_loss: 0.3547 - val_accuracy: 0.8737
Epoch 147/150
3/3 [==============================] - 0s 61ms/step - loss: 0.4183 - accuracy: 0.7974 - val_loss: 0.3544 - val_accuracy: 0.8737
Epoch 148/150
3/3 [==============================] - 0s 50ms/step - loss: 0.4024 - accuracy: 0.8263 - val_loss: 0.3543 - val_accuracy: 0.8737
Epoch 149/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4074 - accuracy: 0.8237 - val_loss: 0.3542 - val_accuracy: 0.8737
Epoch 150/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3967 - accuracy: 0.8184 - val_loss: 0.3541 - val_accuracy: 0.8632
2/2 [==============================] - 0s 11ms/step - loss: 0.3886 - accuracy: 0.8439
Epoch 1/150
3/3 [==============================] - 3s 322ms/step - loss: 0.8915 - accuracy: 0.5145 - val_loss: 0.7237 - val_accuracy: 0.4842
Epoch 2/150
3/3 [==============================] - 0s 46ms/step - loss: 0.7334 - accuracy: 0.6385 - val_loss: 0.6962 - val_accuracy: 0.5368
Epoch 3/150
3/3 [==============================] - 0s 37ms/step - loss: 0.6804 - accuracy: 0.6359 - val_loss: 0.6718 - val_accuracy: 0.5895
Epoch 4/150
3/3 [==============================] - 0s 45ms/step - loss: 0.5987 - accuracy: 0.6834 - val_loss: 0.6521 - val_accuracy: 0.5789
Epoch 5/150
3/3 [==============================] - 0s 38ms/step - loss: 0.5487 - accuracy: 0.7335 - val_loss: 0.6349 - val_accuracy: 0.5895
Epoch 6/150
3/3 [==============================] - 0s 40ms/step - loss: 0.5347 - accuracy: 0.7414 - val_loss: 0.6190 - val_accuracy: 0.6316
Epoch 7/150
3/3 [==============================] - 0s 47ms/step - loss: 0.5056 - accuracy: 0.7599 - val_loss: 0.6049 - val_accuracy: 0.6632
Epoch 8/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4715 - accuracy: 0.7916 - val_loss: 0.5920 - val_accuracy: 0.7158
Epoch 9/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4727 - accuracy: 0.8047 - val_loss: 0.5806 - val_accuracy: 0.7263
Epoch 10/150
3/3 [==============================] - 0s 50ms/step - loss: 0.4845 - accuracy: 0.7678 - val_loss: 0.5704 - val_accuracy: 0.7474
Epoch 11/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4780 - accuracy: 0.8127 - val_loss: 0.5623 - val_accuracy: 0.7579
Epoch 12/150
3/3 [==============================] - 0s 42ms/step - loss: 0.4419 - accuracy: 0.7995 - val_loss: 0.5542 - val_accuracy: 0.7895
Epoch 13/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4382 - accuracy: 0.8206 - val_loss: 0.5474 - val_accuracy: 0.8000
Epoch 14/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4265 - accuracy: 0.8047 - val_loss: 0.5410 - val_accuracy: 0.8000
Epoch 15/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4053 - accuracy: 0.8179 - val_loss: 0.5353 - val_accuracy: 0.8000
Epoch 16/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4477 - accuracy: 0.8021 - val_loss: 0.5299 - val_accuracy: 0.8000
Epoch 17/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4151 - accuracy: 0.8206 - val_loss: 0.5245 - val_accuracy: 0.8000
Epoch 18/150
3/3 [==============================] - 0s 46ms/step - loss: 0.3893 - accuracy: 0.8338 - val_loss: 0.5197 - val_accuracy: 0.8000
Epoch 19/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4087 - accuracy: 0.8311 - val_loss: 0.5155 - val_accuracy: 0.7895
Epoch 20/150
3/3 [==============================] - 0s 42ms/step - loss: 0.4517 - accuracy: 0.7863 - val_loss: 0.5113 - val_accuracy: 0.7895
Epoch 21/150
3/3 [==============================] - 0s 42ms/step - loss: 0.3774 - accuracy: 0.8470 - val_loss: 0.5069 - val_accuracy: 0.7895
Epoch 22/150
3/3 [==============================] - 0s 44ms/step - loss: 0.3943 - accuracy: 0.8417 - val_loss: 0.5027 - val_accuracy: 0.8000
Epoch 23/150
3/3 [==============================] - 0s 44ms/step - loss: 0.3820 - accuracy: 0.8628 - val_loss: 0.4987 - val_accuracy: 0.8000
Epoch 24/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4123 - accuracy: 0.8153 - val_loss: 0.4952 - val_accuracy: 0.8000
Epoch 25/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3946 - accuracy: 0.8259 - val_loss: 0.4920 - val_accuracy: 0.8000
Epoch 26/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4105 - accuracy: 0.8338 - val_loss: 0.4890 - val_accuracy: 0.8000
Epoch 27/150
3/3 [==============================] - 0s 48ms/step - loss: 0.3900 - accuracy: 0.8259 - val_loss: 0.4863 - val_accuracy: 0.8000
Epoch 28/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4000 - accuracy: 0.8232 - val_loss: 0.4839 - val_accuracy: 0.8000
Epoch 29/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3931 - accuracy: 0.8259 - val_loss: 0.4819 - val_accuracy: 0.8105
Epoch 30/150
3/3 [==============================] - 0s 49ms/step - loss: 0.3826 - accuracy: 0.8522 - val_loss: 0.4797 - val_accuracy: 0.8105
Epoch 31/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4024 - accuracy: 0.8338 - val_loss: 0.4781 - val_accuracy: 0.8105
Epoch 32/150
3/3 [==============================] - 0s 44ms/step - loss: 0.3935 - accuracy: 0.8443 - val_loss: 0.4763 - val_accuracy: 0.8105
Epoch 33/150
3/3 [==============================] - 0s 43ms/step - loss: 0.3858 - accuracy: 0.8496 - val_loss: 0.4747 - val_accuracy: 0.8105
Epoch 34/150
3/3 [==============================] - 0s 42ms/step - loss: 0.3958 - accuracy: 0.8100 - val_loss: 0.4731 - val_accuracy: 0.8211
Epoch 35/150
3/3 [==============================] - 0s 43ms/step - loss: 0.3623 - accuracy: 0.8496 - val_loss: 0.4717 - val_accuracy: 0.8211
Epoch 36/150
3/3 [==============================] - 0s 37ms/step - loss: 0.3778 - accuracy: 0.8549 - val_loss: 0.4706 - val_accuracy: 0.8211
Epoch 37/150
3/3 [==============================] - 0s 52ms/step - loss: 0.3906 - accuracy: 0.8443 - val_loss: 0.4692 - val_accuracy: 0.8211
Epoch 38/150
3/3 [==============================] - 0s 44ms/step - loss: 0.3863 - accuracy: 0.8311 - val_loss: 0.4680 - val_accuracy: 0.8211
Epoch 39/150
3/3 [==============================] - 0s 37ms/step - loss: 0.3751 - accuracy: 0.8470 - val_loss: 0.4665 - val_accuracy: 0.8211
Epoch 40/150
3/3 [==============================] - 0s 43ms/step - loss: 0.3947 - accuracy: 0.8364 - val_loss: 0.4654 - val_accuracy: 0.8211
Epoch 41/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4063 - accuracy: 0.8417 - val_loss: 0.4647 - val_accuracy: 0.8211
Epoch 42/150
3/3 [==============================] - 0s 46ms/step - loss: 0.3748 - accuracy: 0.8707 - val_loss: 0.4637 - val_accuracy: 0.8211
Epoch 43/150
3/3 [==============================] - 0s 43ms/step - loss: 0.3470 - accuracy: 0.8496 - val_loss: 0.4624 - val_accuracy: 0.8316
Epoch 44/150
3/3 [==============================] - 0s 43ms/step - loss: 0.3736 - accuracy: 0.8417 - val_loss: 0.4611 - val_accuracy: 0.8316
Epoch 45/150
3/3 [==============================] - 0s 45ms/step - loss: 0.3899 - accuracy: 0.8259 - val_loss: 0.4597 - val_accuracy: 0.8316
Epoch 46/150
3/3 [==============================] - 0s 45ms/step - loss: 0.3561 - accuracy: 0.8417 - val_loss: 0.4583 - val_accuracy: 0.8316
Epoch 47/150
3/3 [==============================] - 0s 49ms/step - loss: 0.3582 - accuracy: 0.8602 - val_loss: 0.4573 - val_accuracy: 0.8316
Epoch 48/150
3/3 [==============================] - 0s 45ms/step - loss: 0.3614 - accuracy: 0.8391 - val_loss: 0.4559 - val_accuracy: 0.8316
Epoch 49/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4034 - accuracy: 0.8179 - val_loss: 0.4550 - val_accuracy: 0.8316
Epoch 50/150
3/3 [==============================] - 0s 54ms/step - loss: 0.3566 - accuracy: 0.8470 - val_loss: 0.4542 - val_accuracy: 0.8316
Epoch 51/150
3/3 [==============================] - 0s 51ms/step - loss: 0.3946 - accuracy: 0.8391 - val_loss: 0.4537 - val_accuracy: 0.8316
Epoch 52/150
3/3 [==============================] - 0s 56ms/step - loss: 0.3671 - accuracy: 0.8417 - val_loss: 0.4529 - val_accuracy: 0.8316
Epoch 53/150
3/3 [==============================] - 0s 64ms/step - loss: 0.3580 - accuracy: 0.8364 - val_loss: 0.4523 - val_accuracy: 0.8316
Epoch 54/150
3/3 [==============================] - 0s 57ms/step - loss: 0.3798 - accuracy: 0.8391 - val_loss: 0.4521 - val_accuracy: 0.8316
Epoch 55/150
3/3 [==============================] - 0s 55ms/step - loss: 0.3598 - accuracy: 0.8654 - val_loss: 0.4519 - val_accuracy: 0.8316
Epoch 56/150
3/3 [==============================] - 0s 51ms/step - loss: 0.3414 - accuracy: 0.8443 - val_loss: 0.4516 - val_accuracy: 0.8316
Epoch 57/150
3/3 [==============================] - 0s 50ms/step - loss: 0.3549 - accuracy: 0.8654 - val_loss: 0.4512 - val_accuracy: 0.8316
Epoch 58/150
3/3 [==============================] - 0s 55ms/step - loss: 0.3510 - accuracy: 0.8417 - val_loss: 0.4510 - val_accuracy: 0.8316
Epoch 59/150
3/3 [==============================] - 0s 55ms/step - loss: 0.3546 - accuracy: 0.8602 - val_loss: 0.4508 - val_accuracy: 0.8316
Epoch 60/150
3/3 [==============================] - 0s 45ms/step - loss: 0.3630 - accuracy: 0.8496 - val_loss: 0.4510 - val_accuracy: 0.8316
Epoch 61/150
3/3 [==============================] - 0s 51ms/step - loss: 0.3518 - accuracy: 0.8549 - val_loss: 0.4511 - val_accuracy: 0.8316
Epoch 62/150
3/3 [==============================] - 0s 43ms/step - loss: 0.3571 - accuracy: 0.8338 - val_loss: 0.4513 - val_accuracy: 0.8316
Epoch 63/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3495 - accuracy: 0.8575 - val_loss: 0.4512 - val_accuracy: 0.8316
Epoch 64/150
3/3 [==============================] - 0s 45ms/step - loss: 0.3668 - accuracy: 0.8575 - val_loss: 0.4516 - val_accuracy: 0.8316
Epoch 65/150
3/3 [==============================] - 0s 39ms/step - loss: 0.3592 - accuracy: 0.8522 - val_loss: 0.4522 - val_accuracy: 0.8316
Epoch 66/150
3/3 [==============================] - 0s 46ms/step - loss: 0.3487 - accuracy: 0.8522 - val_loss: 0.4525 - val_accuracy: 0.8316
Epoch 67/150
3/3 [==============================] - 0s 49ms/step - loss: 0.3273 - accuracy: 0.8654 - val_loss: 0.4527 - val_accuracy: 0.8316
Epoch 68/150
3/3 [==============================] - 0s 46ms/step - loss: 0.3470 - accuracy: 0.8654 - val_loss: 0.4526 - val_accuracy: 0.8316
Epoch 69/150
3/3 [==============================] - 0s 34ms/step - loss: 0.3571 - accuracy: 0.8654 - val_loss: 0.4525 - val_accuracy: 0.8316
Epoch 70/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3705 - accuracy: 0.8575 - val_loss: 0.4524 - val_accuracy: 0.8316
Epoch 71/150
3/3 [==============================] - 0s 48ms/step - loss: 0.3542 - accuracy: 0.8417 - val_loss: 0.4520 - val_accuracy: 0.8316
Epoch 72/150
3/3 [==============================] - 0s 51ms/step - loss: 0.3396 - accuracy: 0.8760 - val_loss: 0.4519 - val_accuracy: 0.8316
Epoch 73/150
3/3 [==============================] - 0s 42ms/step - loss: 0.3770 - accuracy: 0.8417 - val_loss: 0.4516 - val_accuracy: 0.8316
Epoch 74/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3466 - accuracy: 0.8522 - val_loss: 0.4515 - val_accuracy: 0.8211
Epoch 75/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3392 - accuracy: 0.8522 - val_loss: 0.4520 - val_accuracy: 0.8211
Epoch 76/150
3/3 [==============================] - 0s 39ms/step - loss: 0.3594 - accuracy: 0.8575 - val_loss: 0.4531 - val_accuracy: 0.8211
Epoch 77/150
3/3 [==============================] - 0s 43ms/step - loss: 0.3335 - accuracy: 0.8602 - val_loss: 0.4539 - val_accuracy: 0.8211
Epoch 78/150
3/3 [==============================] - 0s 40ms/step - loss: 0.3129 - accuracy: 0.8681 - val_loss: 0.4545 - val_accuracy: 0.8316
Epoch 79/150
3/3 [==============================] - 0s 48ms/step - loss: 0.3447 - accuracy: 0.8549 - val_loss: 0.4550 - val_accuracy: 0.8211
Epoch 80/150
3/3 [==============================] - 0s 48ms/step - loss: 0.3451 - accuracy: 0.8575 - val_loss: 0.4557 - val_accuracy: 0.8211
Epoch 81/150
3/3 [==============================] - 0s 54ms/step - loss: 0.3423 - accuracy: 0.8549 - val_loss: 0.4562 - val_accuracy: 0.8211
Epoch 82/150
3/3 [==============================] - 0s 41ms/step - loss: 0.3262 - accuracy: 0.8628 - val_loss: 0.4567 - val_accuracy: 0.8211
Epoch 83/150
3/3 [==============================] - 0s 46ms/step - loss: 0.3364 - accuracy: 0.8522 - val_loss: 0.4570 - val_accuracy: 0.8211
Epoch 84/150
3/3 [==============================] - 0s 58ms/step - loss: 0.3350 - accuracy: 0.8681 - val_loss: 0.4574 - val_accuracy: 0.8211
Epoch 85/150
3/3 [==============================] - 0s 40ms/step - loss: 0.3693 - accuracy: 0.8391 - val_loss: 0.4580 - val_accuracy: 0.8211
Epoch 86/150
3/3 [==============================] - 0s 46ms/step - loss: 0.3548 - accuracy: 0.8522 - val_loss: 0.4590 - val_accuracy: 0.8211
Epoch 87/150
3/3 [==============================] - 0s 34ms/step - loss: 0.3471 - accuracy: 0.8470 - val_loss: 0.4604 - val_accuracy: 0.8211
Epoch 88/150
3/3 [==============================] - 0s 48ms/step - loss: 0.3784 - accuracy: 0.8470 - val_loss: 0.4616 - val_accuracy: 0.8211
Epoch 89/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3501 - accuracy: 0.8522 - val_loss: 0.4626 - val_accuracy: 0.8211
Epoch 90/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3576 - accuracy: 0.8628 - val_loss: 0.4633 - val_accuracy: 0.8211
Epoch 91/150
3/3 [==============================] - 0s 60ms/step - loss: 0.3337 - accuracy: 0.8602 - val_loss: 0.4638 - val_accuracy: 0.8211
Epoch 92/150
3/3 [==============================] - 0s 68ms/step - loss: 0.3530 - accuracy: 0.8417 - val_loss: 0.4639 - val_accuracy: 0.8211
Epoch 93/150
2/2 [==============================] - 0s 15ms/step - loss: 0.4166 - accuracy: 0.8270
3/3 [==============================] - 0s 87ms/step - loss: 0.3278 - accuracy: 0.8681 - val_loss: 0.4638 - val_accuracy: 0.8211
Epoch 94/150
3/3 [==============================] - 0s 86ms/step - loss: 0.3421 - accuracy: 0.8443 - val_loss: 0.4635 - val_accuracy: 0.8211
Epoch 95/150
3/3 [==============================] - 0s 91ms/step - loss: 0.3277 - accuracy: 0.8364 - val_loss: 0.4637 - val_accuracy: 0.8211
Epoch 96/150
3/3 [==============================] - 0s 60ms/step - loss: 0.3507 - accuracy: 0.8549 - val_loss: 0.4649 - val_accuracy: 0.8211
Epoch 97/150
3/3 [==============================] - 0s 76ms/step - loss: 0.3539 - accuracy: 0.8391 - val_loss: 0.4665 - val_accuracy: 0.8211
Epoch 98/150
1/3 [=========>....................] - ETA: 0s - loss: 0.2886 - accuracy: 0.8594Epoch 1/150
3/3 [==============================] - 0s 85ms/step - loss: 0.3312 - accuracy: 0.8654 - val_loss: 0.4677 - val_accuracy: 0.8211
Epoch 99/150
3/3 [==============================] - 0s 65ms/step - loss: 0.3388 - accuracy: 0.8575 - val_loss: 0.4688 - val_accuracy: 0.8211
Epoch 100/150
3/3 [==============================] - 0s 94ms/step - loss: 0.3158 - accuracy: 0.8786 - val_loss: 0.4699 - val_accuracy: 0.8211
Epoch 101/150
3/3 [==============================] - 0s 69ms/step - loss: 0.3470 - accuracy: 0.8707 - val_loss: 0.4710 - val_accuracy: 0.8211
Epoch 102/150
3/3 [==============================] - 0s 106ms/step - loss: 0.3145 - accuracy: 0.8734 - val_loss: 0.4719 - val_accuracy: 0.8211
Epoch 103/150
3/3 [==============================] - 0s 90ms/step - loss: 0.3268 - accuracy: 0.8602 - val_loss: 0.4728 - val_accuracy: 0.8211
Epoch 104/150
3/3 [==============================] - 0s 73ms/step - loss: 0.3448 - accuracy: 0.8575 - val_loss: 0.4737 - val_accuracy: 0.8211
Epoch 105/150
3/3 [==============================] - 0s 65ms/step - loss: 0.3316 - accuracy: 0.8628 - val_loss: 0.4744 - val_accuracy: 0.8211
Epoch 106/150
3/3 [==============================] - 0s 58ms/step - loss: 0.3471 - accuracy: 0.8575 - val_loss: 0.4755 - val_accuracy: 0.8211
Epoch 107/150
3/3 [==============================] - 0s 61ms/step - loss: 0.3306 - accuracy: 0.8734 - val_loss: 0.4764 - val_accuracy: 0.8211
Epoch 108/150
3/3 [==============================] - 0s 65ms/step - loss: 0.3372 - accuracy: 0.8602 - val_loss: 0.4770 - val_accuracy: 0.8211
Epoch 109/150
3/3 [==============================] - 0s 70ms/step - loss: 0.3203 - accuracy: 0.8760 - val_loss: 0.4769 - val_accuracy: 0.8211
Epoch 110/150
3/3 [==============================] - 0s 65ms/step - loss: 0.3302 - accuracy: 0.8707 - val_loss: 0.4772 - val_accuracy: 0.8211
Epoch 111/150
3/3 [==============================] - 0s 60ms/step - loss: 0.3600 - accuracy: 0.8522 - val_loss: 0.4777 - val_accuracy: 0.8211
Epoch 112/150
3/3 [==============================] - 0s 65ms/step - loss: 0.3549 - accuracy: 0.8681 - val_loss: 0.4784 - val_accuracy: 0.8211
Epoch 113/150
3/3 [==============================] - 0s 63ms/step - loss: 0.3169 - accuracy: 0.8760 - val_loss: 0.4793 - val_accuracy: 0.8316
Epoch 114/150
3/3 [==============================] - 0s 67ms/step - loss: 0.3259 - accuracy: 0.8681 - val_loss: 0.4797 - val_accuracy: 0.8316
Epoch 115/150
3/3 [==============================] - 0s 59ms/step - loss: 0.3354 - accuracy: 0.8575 - val_loss: 0.4803 - val_accuracy: 0.8316
Epoch 116/150
3/3 [==============================] - 0s 57ms/step - loss: 0.3204 - accuracy: 0.8786 - val_loss: 0.4805 - val_accuracy: 0.8211
Epoch 117/150
3/3 [==============================] - 0s 61ms/step - loss: 0.3254 - accuracy: 0.8760 - val_loss: 0.4805 - val_accuracy: 0.8105
Epoch 118/150
3/3 [==============================] - 0s 61ms/step - loss: 0.3393 - accuracy: 0.8681 - val_loss: 0.4806 - val_accuracy: 0.8105
Epoch 119/150
3/3 [==============================] - 0s 61ms/step - loss: 0.3399 - accuracy: 0.8681 - val_loss: 0.4810 - val_accuracy: 0.8105
Epoch 120/150
3/3 [==============================] - 0s 77ms/step - loss: 0.3389 - accuracy: 0.8760 - val_loss: 0.4808 - val_accuracy: 0.8105
Epoch 121/150
3/3 [==============================] - 0s 67ms/step - loss: 0.3367 - accuracy: 0.8602 - val_loss: 0.4811 - val_accuracy: 0.8105
Epoch 122/150
3/3 [==============================] - 0s 62ms/step - loss: 0.3154 - accuracy: 0.8707 - val_loss: 0.4817 - val_accuracy: 0.8105
Epoch 123/150
3/3 [==============================] - 0s 67ms/step - loss: 0.3295 - accuracy: 0.8654 - val_loss: 0.4829 - val_accuracy: 0.8105
Epoch 124/150
3/3 [==============================] - 0s 63ms/step - loss: 0.3621 - accuracy: 0.8549 - val_loss: 0.4841 - val_accuracy: 0.8105
Epoch 125/150
3/3 [==============================] - 0s 71ms/step - loss: 0.3271 - accuracy: 0.8681 - val_loss: 0.4850 - val_accuracy: 0.8105
Epoch 126/150
3/3 [==============================] - 0s 70ms/step - loss: 0.3291 - accuracy: 0.8681 - val_loss: 0.4863 - val_accuracy: 0.8105
Epoch 127/150
3/3 [==============================] - 0s 84ms/step - loss: 0.3398 - accuracy: 0.8654 - val_loss: 0.4873 - val_accuracy: 0.8105
Epoch 128/150
3/3 [==============================] - 0s 65ms/step - loss: 0.2952 - accuracy: 0.8813 - val_loss: 0.4875 - val_accuracy: 0.8105
Epoch 129/150
3/3 [==============================] - 0s 61ms/step - loss: 0.3391 - accuracy: 0.8602 - val_loss: 0.4879 - val_accuracy: 0.8000
Epoch 130/150
3/3 [==============================] - 0s 71ms/step - loss: 0.3231 - accuracy: 0.8654 - val_loss: 0.4886 - val_accuracy: 0.8000
Epoch 131/150
3/3 [==============================] - 0s 59ms/step - loss: 0.3372 - accuracy: 0.8575 - val_loss: 0.4896 - val_accuracy: 0.8000
Epoch 132/150
3/3 [==============================] - 0s 63ms/step - loss: 0.3437 - accuracy: 0.8522 - val_loss: 0.4904 - val_accuracy: 0.8000
Epoch 133/150
3/3 [==============================] - 6s 490ms/step - loss: 0.8618 - accuracy: 0.5132 - val_loss: 0.6711 - val_accuracy: 0.6105
Epoch 2/150
3/3 [==============================] - 0s 72ms/step - loss: 0.3296 - accuracy: 0.8602 - val_loss: 0.4916 - val_accuracy: 0.8105
Epoch 134/150
3/3 [==============================] - 0s 69ms/step - loss: 0.7542 - accuracy: 0.5868 - val_loss: 0.6461 - val_accuracy: 0.6947
Epoch 3/150
3/3 [==============================] - 0s 81ms/step - loss: 0.3279 - accuracy: 0.8865 - val_loss: 0.4925 - val_accuracy: 0.8105
Epoch 135/150
3/3 [==============================] - 0s 80ms/step - loss: 0.6411 - accuracy: 0.6974 - val_loss: 0.6278 - val_accuracy: 0.7263
Epoch 4/150
3/3 [==============================] - 0s 76ms/step - loss: 0.3072 - accuracy: 0.8760 - val_loss: 0.4935 - val_accuracy: 0.8105
Epoch 136/150
3/3 [==============================] - 0s 81ms/step - loss: 0.6087 - accuracy: 0.7000 - val_loss: 0.6127 - val_accuracy: 0.7368
Epoch 5/150
3/3 [==============================] - 0s 82ms/step - loss: 0.3570 - accuracy: 0.8575 - val_loss: 0.4943 - val_accuracy: 0.8105
Epoch 137/150
3/3 [==============================] - 0s 77ms/step - loss: 0.5867 - accuracy: 0.7158 - val_loss: 0.6005 - val_accuracy: 0.7474
Epoch 6/150
3/3 [==============================] - 0s 78ms/step - loss: 0.3136 - accuracy: 0.8734 - val_loss: 0.4951 - val_accuracy: 0.8105
Epoch 138/150
3/3 [==============================] - 0s 68ms/step - loss: 0.5654 - accuracy: 0.7447 - val_loss: 0.5902 - val_accuracy: 0.7368
Epoch 7/150
3/3 [==============================] - 0s 75ms/step - loss: 0.3278 - accuracy: 0.8734 - val_loss: 0.4965 - val_accuracy: 0.8105
Epoch 139/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4827 - accuracy: 0.7868 - val_loss: 0.5811 - val_accuracy: 0.7368
Epoch 8/150
3/3 [==============================] - 0s 81ms/step - loss: 0.3182 - accuracy: 0.8734 - val_loss: 0.4969 - val_accuracy: 0.8105
Epoch 140/150
3/3 [==============================] - 0s 77ms/step - loss: 0.5473 - accuracy: 0.7526 - val_loss: 0.5741 - val_accuracy: 0.7368
Epoch 9/150
3/3 [==============================] - 0s 75ms/step - loss: 0.3179 - accuracy: 0.8707 - val_loss: 0.4976 - val_accuracy: 0.8105
Epoch 141/150
3/3 [==============================] - 0s 53ms/step - loss: 0.5120 - accuracy: 0.7816 - val_loss: 0.5681 - val_accuracy: 0.7579
Epoch 10/150
3/3 [==============================] - 0s 76ms/step - loss: 0.3097 - accuracy: 0.8734 - val_loss: 0.4976 - val_accuracy: 0.8000
Epoch 142/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4957 - accuracy: 0.7711 - val_loss: 0.5623 - val_accuracy: 0.7684
Epoch 11/150
3/3 [==============================] - 0s 58ms/step - loss: 0.5226 - accuracy: 0.7368 - val_loss: 0.5567 - val_accuracy: 0.7474
Epoch 12/150
3/3 [==============================] - 0s 75ms/step - loss: 0.3318 - accuracy: 0.8760 - val_loss: 0.4980 - val_accuracy: 0.8000
Epoch 143/150
3/3 [==============================] - 0s 59ms/step - loss: 0.3366 - accuracy: 0.8654 - val_loss: 0.4983 - val_accuracy: 0.8000
Epoch 144/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4688 - accuracy: 0.7895 - val_loss: 0.5522 - val_accuracy: 0.7579
Epoch 13/150
3/3 [==============================] - 0s 72ms/step - loss: 0.3262 - accuracy: 0.8628 - val_loss: 0.4986 - val_accuracy: 0.8000
Epoch 145/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4991 - accuracy: 0.7816 - val_loss: 0.5479 - val_accuracy: 0.7579
Epoch 14/150
3/3 [==============================] - 0s 91ms/step - loss: 0.4722 - accuracy: 0.8079 - val_loss: 0.5437 - val_accuracy: 0.7579
3/3 [==============================] - 0s 85ms/step - loss: 0.3122 - accuracy: 0.8628 - val_loss: 0.4994 - val_accuracy: 0.8000
Epoch 146/150
Epoch 15/150
3/3 [==============================] - 0s 87ms/step - loss: 0.3466 - accuracy: 0.8549 - val_loss: 0.5006 - val_accuracy: 0.8000
Epoch 147/150
3/3 [==============================] - 0s 108ms/step - loss: 0.4868 - accuracy: 0.7974 - val_loss: 0.5396 - val_accuracy: 0.7579
Epoch 16/150
3/3 [==============================] - 0s 80ms/step - loss: 0.3192 - accuracy: 0.8654 - val_loss: 0.5018 - val_accuracy: 0.8000
Epoch 148/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4391 - accuracy: 0.8263 - val_loss: 0.5361 - val_accuracy: 0.7579
Epoch 17/150
3/3 [==============================] - 0s 89ms/step - loss: 0.3191 - accuracy: 0.8602 - val_loss: 0.5030 - val_accuracy: 0.8000
Epoch 149/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4930 - accuracy: 0.7816 - val_loss: 0.5324 - val_accuracy: 0.7684
Epoch 18/150
3/3 [==============================] - 0s 68ms/step - loss: 0.5199 - accuracy: 0.7579 - val_loss: 0.5300 - val_accuracy: 0.7684
Epoch 19/150
3/3 [==============================] - 0s 85ms/step - loss: 0.3246 - accuracy: 0.8628 - val_loss: 0.5041 - val_accuracy: 0.8000
Epoch 150/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4721 - accuracy: 0.7895 - val_loss: 0.5275 - val_accuracy: 0.7684
Epoch 20/150
3/3 [==============================] - 0s 72ms/step - loss: 0.3206 - accuracy: 0.8602 - val_loss: 0.5047 - val_accuracy: 0.8000
3/3 [==============================] - 0s 75ms/step - loss: 0.4269 - accuracy: 0.8105 - val_loss: 0.5250 - val_accuracy: 0.7684
Epoch 21/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4752 - accuracy: 0.7974 - val_loss: 0.5227 - val_accuracy: 0.7684
Epoch 22/150
2/2 [==============================] - 0s 9ms/step - loss: 0.5772 - accuracy: 0.7899
3/3 [==============================] - 0s 75ms/step - loss: 0.4530 - accuracy: 0.7895 - val_loss: 0.5200 - val_accuracy: 0.7789
Epoch 23/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4545 - accuracy: 0.8026 - val_loss: 0.5173 - val_accuracy: 0.7789
Epoch 24/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4739 - accuracy: 0.8053 - val_loss: 0.5151 - val_accuracy: 0.7789
Epoch 25/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4634 - accuracy: 0.7842 - val_loss: 0.5126 - val_accuracy: 0.7789
Epoch 26/150
1/3 [=========>....................] - ETA: 0s - loss: 0.4765 - accuracy: 0.7812Epoch 1/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4539 - accuracy: 0.7974 - val_loss: 0.5098 - val_accuracy: 0.7789
Epoch 27/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4309 - accuracy: 0.7974 - val_loss: 0.5073 - val_accuracy: 0.7789
Epoch 28/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4627 - accuracy: 0.8079 - val_loss: 0.5051 - val_accuracy: 0.7789
Epoch 29/150
3/3 [==============================] - 0s 89ms/step - loss: 0.4554 - accuracy: 0.7974 - val_loss: 0.5029 - val_accuracy: 0.7789
Epoch 30/150
3/3 [==============================] - 0s 80ms/step - loss: 0.4296 - accuracy: 0.8132 - val_loss: 0.5006 - val_accuracy: 0.7789
Epoch 31/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4340 - accuracy: 0.8079 - val_loss: 0.4987 - val_accuracy: 0.7789
Epoch 32/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4341 - accuracy: 0.8184 - val_loss: 0.4972 - val_accuracy: 0.7789
Epoch 33/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4435 - accuracy: 0.8132 - val_loss: 0.4960 - val_accuracy: 0.7789
Epoch 34/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4116 - accuracy: 0.8368 - val_loss: 0.4943 - val_accuracy: 0.7789
Epoch 35/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4110 - accuracy: 0.8289 - val_loss: 0.4928 - val_accuracy: 0.7789
Epoch 36/150
3/3 [==============================] - 0s 83ms/step - loss: 0.4148 - accuracy: 0.8263 - val_loss: 0.4915 - val_accuracy: 0.7789
Epoch 37/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4179 - accuracy: 0.8368 - val_loss: 0.4903 - val_accuracy: 0.7789
Epoch 38/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4363 - accuracy: 0.8211 - val_loss: 0.4897 - val_accuracy: 0.7789
Epoch 39/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4587 - accuracy: 0.8132 - val_loss: 0.4892 - val_accuracy: 0.7789
Epoch 40/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4267 - accuracy: 0.8158 - val_loss: 0.4878 - val_accuracy: 0.7789
Epoch 41/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4327 - accuracy: 0.8053 - val_loss: 0.4861 - val_accuracy: 0.7789
Epoch 42/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4294 - accuracy: 0.8158 - val_loss: 0.4847 - val_accuracy: 0.7789
Epoch 43/150
3/3 [==============================] - 0s 70ms/step - loss: 0.4472 - accuracy: 0.7921 - val_loss: 0.4831 - val_accuracy: 0.7789
Epoch 44/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4328 - accuracy: 0.8289 - val_loss: 0.4819 - val_accuracy: 0.7895
Epoch 45/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4228 - accuracy: 0.8026 - val_loss: 0.4808 - val_accuracy: 0.7895
Epoch 46/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4443 - accuracy: 0.8158 - val_loss: 0.4799 - val_accuracy: 0.7895
Epoch 47/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4615 - accuracy: 0.8132 - val_loss: 0.4790 - val_accuracy: 0.7895
Epoch 48/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4465 - accuracy: 0.8053 - val_loss: 0.4782 - val_accuracy: 0.7895
Epoch 49/150
3/3 [==============================] - 0s 70ms/step - loss: 0.4453 - accuracy: 0.8237 - val_loss: 0.4777 - val_accuracy: 0.7895
Epoch 50/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4420 - accuracy: 0.8289 - val_loss: 0.4771 - val_accuracy: 0.7895
Epoch 51/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4180 - accuracy: 0.8263 - val_loss: 0.4764 - val_accuracy: 0.7895
Epoch 52/150
3/3 [==============================] - 0s 89ms/step - loss: 0.4040 - accuracy: 0.8368 - val_loss: 0.4759 - val_accuracy: 0.7789
Epoch 53/150
3/3 [==============================] - 0s 103ms/step - loss: 0.4398 - accuracy: 0.8000 - val_loss: 0.4757 - val_accuracy: 0.7789
Epoch 54/150
3/3 [==============================] - 0s 80ms/step - loss: 0.4431 - accuracy: 0.8132 - val_loss: 0.4757 - val_accuracy: 0.7789
Epoch 55/150
3/3 [==============================] - 0s 98ms/step - loss: 0.4179 - accuracy: 0.8237 - val_loss: 0.4756 - val_accuracy: 0.7789
Epoch 56/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4254 - accuracy: 0.8079 - val_loss: 0.4757 - val_accuracy: 0.7789
Epoch 57/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4377 - accuracy: 0.8263 - val_loss: 0.4754 - val_accuracy: 0.7789
Epoch 58/150
3/3 [==============================] - 0s 63ms/step - loss: 0.3911 - accuracy: 0.8289 - val_loss: 0.4753 - val_accuracy: 0.7789
3/3 [==============================] - 6s 547ms/step - loss: 0.6741 - accuracy: 0.6237 - val_loss: 0.5993 - val_accuracy: 0.6842
Epoch 59/150
Epoch 2/150
3/3 [==============================] - 0s 80ms/step - loss: 0.6412 - accuracy: 0.6474 - val_loss: 0.5806 - val_accuracy: 0.7263
3/3 [==============================] - 0s 86ms/step - loss: 0.4233 - accuracy: 0.8316 - val_loss: 0.4752 - val_accuracy: 0.7789
Epoch 60/150
Epoch 3/150
3/3 [==============================] - 0s 63ms/step - loss: 0.6109 - accuracy: 0.6947 - val_loss: 0.5680 - val_accuracy: 0.7684
Epoch 4/150
3/3 [==============================] - 0s 96ms/step - loss: 0.4324 - accuracy: 0.8132 - val_loss: 0.4748 - val_accuracy: 0.7789
Epoch 61/150
3/3 [==============================] - 0s 76ms/step - loss: 0.5628 - accuracy: 0.7289 - val_loss: 0.5575 - val_accuracy: 0.7895
Epoch 5/150
3/3 [==============================] - 0s 90ms/step - loss: 0.3776 - accuracy: 0.8526 - val_loss: 0.4744 - val_accuracy: 0.7789
Epoch 62/150
3/3 [==============================] - 0s 96ms/step - loss: 0.6200 - accuracy: 0.7000 - val_loss: 0.5487 - val_accuracy: 0.8000
Epoch 6/150
3/3 [==============================] - 0s 106ms/step - loss: 0.4099 - accuracy: 0.8316 - val_loss: 0.4739 - val_accuracy: 0.7789
Epoch 63/150
3/3 [==============================] - 0s 111ms/step - loss: 0.5392 - accuracy: 0.7474 - val_loss: 0.5404 - val_accuracy: 0.8105
Epoch 7/150
3/3 [==============================] - 0s 113ms/step - loss: 0.4080 - accuracy: 0.8289 - val_loss: 0.4733 - val_accuracy: 0.7789
Epoch 64/150
3/3 [==============================] - 0s 83ms/step - loss: 0.5493 - accuracy: 0.7132 - val_loss: 0.5338 - val_accuracy: 0.8316
Epoch 8/150
3/3 [==============================] - 0s 83ms/step - loss: 0.4057 - accuracy: 0.8158 - val_loss: 0.4724 - val_accuracy: 0.7789
Epoch 65/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4987 - accuracy: 0.7816 - val_loss: 0.5279 - val_accuracy: 0.8211
Epoch 9/150
3/3 [==============================] - 0s 92ms/step - loss: 0.4214 - accuracy: 0.8079 - val_loss: 0.4720 - val_accuracy: 0.7789
Epoch 66/150
3/3 [==============================] - 0s 87ms/step - loss: 0.5020 - accuracy: 0.7711 - val_loss: 0.5218 - val_accuracy: 0.8316
Epoch 10/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4199 - accuracy: 0.8211 - val_loss: 0.4717 - val_accuracy: 0.7789
Epoch 67/150
3/3 [==============================] - 0s 87ms/step - loss: 0.5337 - accuracy: 0.7632 - val_loss: 0.5158 - val_accuracy: 0.8316
Epoch 11/150
3/3 [==============================] - 0s 90ms/step - loss: 0.4178 - accuracy: 0.8184 - val_loss: 0.4722 - val_accuracy: 0.7789
Epoch 68/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4904 - accuracy: 0.7868 - val_loss: 0.5111 - val_accuracy: 0.8316
Epoch 12/150
3/3 [==============================] - 0s 92ms/step - loss: 0.4160 - accuracy: 0.8500 - val_loss: 0.4722 - val_accuracy: 0.7789
Epoch 69/150
3/3 [==============================] - 0s 84ms/step - loss: 0.5438 - accuracy: 0.7605 - val_loss: 0.5076 - val_accuracy: 0.8421
Epoch 13/150
3/3 [==============================] - 0s 123ms/step - loss: 0.4140 - accuracy: 0.8184 - val_loss: 0.4720 - val_accuracy: 0.7789
Epoch 70/150
3/3 [==============================] - 0s 123ms/step - loss: 0.5086 - accuracy: 0.7605 - val_loss: 0.5039 - val_accuracy: 0.8526
Epoch 14/150
3/3 [==============================] - 0s 102ms/step - loss: 0.4084 - accuracy: 0.8211 - val_loss: 0.4719 - val_accuracy: 0.7789
Epoch 71/150
3/3 [==============================] - 0s 110ms/step - loss: 0.5195 - accuracy: 0.7447 - val_loss: 0.5003 - val_accuracy: 0.8632
Epoch 15/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4657 - accuracy: 0.8211 - val_loss: 0.4973 - val_accuracy: 0.8632
3/3 [==============================] - 0s 87ms/step - loss: 0.4012 - accuracy: 0.8342 - val_loss: 0.4721 - val_accuracy: 0.7789
Epoch 16/150
1/3 [=========>....................] - ETA: 0s - loss: 0.5101 - accuracy: 0.7422Epoch 72/150
3/3 [==============================] - 0s 100ms/step - loss: 0.4988 - accuracy: 0.7789 - val_loss: 0.4942 - val_accuracy: 0.8632
3/3 [==============================] - 0s 94ms/step - loss: 0.4298 - accuracy: 0.8263 - val_loss: 0.4722 - val_accuracy: 0.7789
Epoch 17/150
Epoch 73/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4932 - accuracy: 0.7737 - val_loss: 0.4905 - val_accuracy: 0.8632
Epoch 18/150
3/3 [==============================] - 0s 95ms/step - loss: 0.3841 - accuracy: 0.8526 - val_loss: 0.4718 - val_accuracy: 0.7789
Epoch 74/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4680 - accuracy: 0.7974 - val_loss: 0.4872 - val_accuracy: 0.8632
Epoch 19/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4031 - accuracy: 0.8316 - val_loss: 0.4717 - val_accuracy: 0.7789
Epoch 75/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4078 - accuracy: 0.8263 - val_loss: 0.4714 - val_accuracy: 0.7895
3/3 [==============================] - 0s 70ms/step - loss: 0.4500 - accuracy: 0.8079 - val_loss: 0.4840 - val_accuracy: 0.8632
Epoch 20/150
Epoch 76/150
3/3 [==============================] - 0s 70ms/step - loss: 0.5020 - accuracy: 0.7763 - val_loss: 0.4812 - val_accuracy: 0.8632
Epoch 21/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4122 - accuracy: 0.8368 - val_loss: 0.4713 - val_accuracy: 0.7895
Epoch 77/150
3/3 [==============================] - 0s 66ms/step - loss: 0.5030 - accuracy: 0.7684 - val_loss: 0.4777 - val_accuracy: 0.8632
Epoch 22/150
3/3 [==============================] - 0s 85ms/step - loss: 0.3803 - accuracy: 0.8368 - val_loss: 0.4705 - val_accuracy: 0.7895
Epoch 78/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4612 - accuracy: 0.7868 - val_loss: 0.4742 - val_accuracy: 0.8632
Epoch 23/150
3/3 [==============================] - 0s 78ms/step - loss: 0.3960 - accuracy: 0.8447 - val_loss: 0.4700 - val_accuracy: 0.7895
Epoch 79/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4716 - accuracy: 0.8000 - val_loss: 0.4704 - val_accuracy: 0.8632
Epoch 24/150
3/3 [==============================] - 0s 77ms/step - loss: 0.3960 - accuracy: 0.8474 - val_loss: 0.4695 - val_accuracy: 0.7895
Epoch 80/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4796 - accuracy: 0.8000 - val_loss: 0.4673 - val_accuracy: 0.8632
Epoch 25/150
3/3 [==============================] - 0s 75ms/step - loss: 0.3900 - accuracy: 0.8263 - val_loss: 0.4688 - val_accuracy: 0.7895
Epoch 81/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4489 - accuracy: 0.8158 - val_loss: 0.4642 - val_accuracy: 0.8632
Epoch 26/150
3/3 [==============================] - 0s 88ms/step - loss: 0.3890 - accuracy: 0.8447 - val_loss: 0.4683 - val_accuracy: 0.7895
Epoch 82/150
3/3 [==============================] - 0s 75ms/step - loss: 0.5067 - accuracy: 0.7737 - val_loss: 0.4618 - val_accuracy: 0.8632
1/3 [=========>....................] - ETA: 0s - loss: 0.4387 - accuracy: 0.8125Epoch 27/150
3/3 [==============================] - 0s 72ms/step - loss: 0.3943 - accuracy: 0.8237 - val_loss: 0.4679 - val_accuracy: 0.7895
Epoch 83/150
3/3 [==============================] - 0s 83ms/step - loss: 0.4752 - accuracy: 0.7921 - val_loss: 0.4590 - val_accuracy: 0.8632
Epoch 28/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4289 - accuracy: 0.8158 - val_loss: 0.4678 - val_accuracy: 0.7895
Epoch 84/150
3/3 [==============================] - 0s 85ms/step - loss: 0.4930 - accuracy: 0.7816 - val_loss: 0.4565 - val_accuracy: 0.8632
Epoch 29/150
3/3 [==============================] - 0s 87ms/step - loss: 0.3990 - accuracy: 0.8395 - val_loss: 0.4681 - val_accuracy: 0.7895
Epoch 85/150
3/3 [==============================] - 0s 97ms/step - loss: 0.4460 - accuracy: 0.8158 - val_loss: 0.4545 - val_accuracy: 0.8632
Epoch 30/150
3/3 [==============================] - 0s 85ms/step - loss: 0.3965 - accuracy: 0.8211 - val_loss: 0.4687 - val_accuracy: 0.7789
Epoch 86/150
3/3 [==============================] - 0s 94ms/step - loss: 0.4594 - accuracy: 0.8079 - val_loss: 0.4525 - val_accuracy: 0.8632
Epoch 31/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4010 - accuracy: 0.8211 - val_loss: 0.4689 - val_accuracy: 0.7789
Epoch 87/150
3/3 [==============================] - 0s 96ms/step - loss: 0.4798 - accuracy: 0.8079 - val_loss: 0.4507 - val_accuracy: 0.8737
Epoch 32/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4003 - accuracy: 0.8395 - val_loss: 0.4692 - val_accuracy: 0.7895
Epoch 88/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4497 - accuracy: 0.7868 - val_loss: 0.4481 - val_accuracy: 0.8737
Epoch 33/150
3/3 [==============================] - 0s 95ms/step - loss: 0.3922 - accuracy: 0.8368 - val_loss: 0.4693 - val_accuracy: 0.7895
Epoch 89/150
3/3 [==============================] - 0s 85ms/step - loss: 0.4407 - accuracy: 0.8026 - val_loss: 0.4457 - val_accuracy: 0.8737
3/3 [==============================] - 0s 84ms/step - loss: 0.4111 - accuracy: 0.8184 - val_loss: 0.4699 - val_accuracy: 0.7789
Epoch 34/150
Epoch 90/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4563 - accuracy: 0.8026 - val_loss: 0.4432 - val_accuracy: 0.8737
Epoch 35/150
3/3 [==============================] - 0s 102ms/step - loss: 0.3999 - accuracy: 0.8211 - val_loss: 0.4703 - val_accuracy: 0.7789
Epoch 91/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4051 - accuracy: 0.8368 - val_loss: 0.4707 - val_accuracy: 0.7789
3/3 [==============================] - 0s 100ms/step - loss: 0.4431 - accuracy: 0.8184 - val_loss: 0.4415 - val_accuracy: 0.8737
Epoch 36/150
Epoch 92/150
3/3 [==============================] - 0s 73ms/step - loss: 0.3970 - accuracy: 0.8263 - val_loss: 0.4714 - val_accuracy: 0.7789
Epoch 93/150
3/3 [==============================] - 0s 109ms/step - loss: 0.4344 - accuracy: 0.8184 - val_loss: 0.4400 - val_accuracy: 0.8842
Epoch 37/150
3/3 [==============================] - 0s 82ms/step - loss: 0.3881 - accuracy: 0.8395 - val_loss: 0.4719 - val_accuracy: 0.7789
Epoch 94/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4532 - accuracy: 0.8158 - val_loss: 0.4380 - val_accuracy: 0.8842
Epoch 38/150
3/3 [==============================] - 0s 92ms/step - loss: 0.3969 - accuracy: 0.8526 - val_loss: 0.4723 - val_accuracy: 0.7789
Epoch 95/150
3/3 [==============================] - 0s 89ms/step - loss: 0.4669 - accuracy: 0.7816 - val_loss: 0.4364 - val_accuracy: 0.8842
Epoch 39/150
3/3 [==============================] - 0s 106ms/step - loss: 0.4018 - accuracy: 0.8632 - val_loss: 0.4728 - val_accuracy: 0.7789
Epoch 96/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4522 - accuracy: 0.8053 - val_loss: 0.4342 - val_accuracy: 0.8842
Epoch 40/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4593 - accuracy: 0.8105 - val_loss: 0.4322 - val_accuracy: 0.8842
Epoch 41/150
3/3 [==============================] - 0s 80ms/step - loss: 0.3772 - accuracy: 0.8526 - val_loss: 0.4735 - val_accuracy: 0.7789
Epoch 97/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4204 - accuracy: 0.8211 - val_loss: 0.4740 - val_accuracy: 0.7789
3/3 [==============================] - 0s 66ms/step - loss: 0.4842 - accuracy: 0.7763 - val_loss: 0.4310 - val_accuracy: 0.8842
Epoch 42/150
Epoch 98/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4453 - accuracy: 0.7947 - val_loss: 0.4290 - val_accuracy: 0.8842
3/3 [==============================] - 0s 73ms/step - loss: 0.3836 - accuracy: 0.8553 - val_loss: 0.4746 - val_accuracy: 0.8000
Epoch 99/150
Epoch 43/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4570 - accuracy: 0.7974 - val_loss: 0.4262 - val_accuracy: 0.8842
Epoch 44/150
3/3 [==============================] - 0s 81ms/step - loss: 0.3958 - accuracy: 0.8421 - val_loss: 0.4752 - val_accuracy: 0.8000
Epoch 100/150
3/3 [==============================] - 0s 88ms/step - loss: 0.4641 - accuracy: 0.8026 - val_loss: 0.4233 - val_accuracy: 0.8842
Epoch 45/150
3/3 [==============================] - 0s 99ms/step - loss: 0.3905 - accuracy: 0.8447 - val_loss: 0.4756 - val_accuracy: 0.8000
Epoch 101/150
3/3 [==============================] - 0s 86ms/step - loss: 0.4529 - accuracy: 0.8026 - val_loss: 0.4203 - val_accuracy: 0.8842
Epoch 46/150
3/3 [==============================] - 0s 95ms/step - loss: 0.3721 - accuracy: 0.8526 - val_loss: 0.4758 - val_accuracy: 0.8000
Epoch 102/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4040 - accuracy: 0.8289 - val_loss: 0.4171 - val_accuracy: 0.8842
Epoch 47/150
3/3 [==============================] - 0s 87ms/step - loss: 0.3871 - accuracy: 0.8500 - val_loss: 0.4756 - val_accuracy: 0.8000
Epoch 103/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4026 - accuracy: 0.8158 - val_loss: 0.4144 - val_accuracy: 0.8842
Epoch 48/150
3/3 [==============================] - 0s 84ms/step - loss: 0.3735 - accuracy: 0.8526 - val_loss: 0.4754 - val_accuracy: 0.8105
Epoch 104/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4389 - accuracy: 0.8053 - val_loss: 0.4118 - val_accuracy: 0.8842
Epoch 49/150
3/3 [==============================] - 0s 82ms/step - loss: 0.3900 - accuracy: 0.8184 - val_loss: 0.4752 - val_accuracy: 0.8000
Epoch 105/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4570 - accuracy: 0.8026 - val_loss: 0.4093 - val_accuracy: 0.8842
Epoch 50/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4455 - accuracy: 0.8132 - val_loss: 0.4078 - val_accuracy: 0.8842
3/3 [==============================] - 0s 79ms/step - loss: 0.3972 - accuracy: 0.8368 - val_loss: 0.4750 - val_accuracy: 0.8000
Epoch 51/150
Epoch 106/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4049 - accuracy: 0.8342 - val_loss: 0.4752 - val_accuracy: 0.8000
3/3 [==============================] - 0s 75ms/step - loss: 0.4596 - accuracy: 0.7868 - val_loss: 0.4066 - val_accuracy: 0.8842
Epoch 52/150
Epoch 107/150
3/3 [==============================] - 0s 73ms/step - loss: 0.3755 - accuracy: 0.8605 - val_loss: 0.4756 - val_accuracy: 0.8000
3/3 [==============================] - 0s 78ms/step - loss: 0.4404 - accuracy: 0.8184 - val_loss: 0.4054 - val_accuracy: 0.8842
Epoch 108/150
Epoch 53/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4525 - accuracy: 0.8026 - val_loss: 0.4041 - val_accuracy: 0.8842
Epoch 54/150
3/3 [==============================] - 0s 99ms/step - loss: 0.3575 - accuracy: 0.8474 - val_loss: 0.4760 - val_accuracy: 0.8105
1/3 [=========>....................] - ETA: 0s - loss: 0.5273 - accuracy: 0.7734Epoch 109/150
3/3 [==============================] - 0s 80ms/step - loss: 0.4665 - accuracy: 0.8026 - val_loss: 0.4030 - val_accuracy: 0.8842
Epoch 55/150
3/3 [==============================] - 0s 81ms/step - loss: 0.3844 - accuracy: 0.8526 - val_loss: 0.4766 - val_accuracy: 0.8105
Epoch 110/150
3/3 [==============================] - 0s 83ms/step - loss: 0.4582 - accuracy: 0.7895 - val_loss: 0.4018 - val_accuracy: 0.8842
Epoch 56/150
3/3 [==============================] - 0s 86ms/step - loss: 0.3726 - accuracy: 0.8526 - val_loss: 0.4771 - val_accuracy: 0.8105
Epoch 111/150
3/3 [==============================] - 0s 71ms/step - loss: 0.3889 - accuracy: 0.8316 - val_loss: 0.4775 - val_accuracy: 0.8105
Epoch 112/150
3/3 [==============================] - 0s 102ms/step - loss: 0.4038 - accuracy: 0.8211 - val_loss: 0.4005 - val_accuracy: 0.8842
1/3 [=========>....................] - ETA: 0s - loss: 0.4038 - accuracy: 0.8125Epoch 57/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4592 - accuracy: 0.7816 - val_loss: 0.3994 - val_accuracy: 0.8842
3/3 [==============================] - 0s 82ms/step - loss: 0.3912 - accuracy: 0.8263 - val_loss: 0.4778 - val_accuracy: 0.8000
Epoch 113/150
Epoch 58/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4483 - accuracy: 0.7974 - val_loss: 0.3983 - val_accuracy: 0.8842
Epoch 59/150
3/3 [==============================] - 0s 84ms/step - loss: 0.3940 - accuracy: 0.8421 - val_loss: 0.4780 - val_accuracy: 0.8000
Epoch 114/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4522 - accuracy: 0.8079 - val_loss: 0.3969 - val_accuracy: 0.8842
Epoch 60/150
3/3 [==============================] - 0s 78ms/step - loss: 0.3693 - accuracy: 0.8553 - val_loss: 0.4789 - val_accuracy: 0.8000
Epoch 115/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4504 - accuracy: 0.8053 - val_loss: 0.3961 - val_accuracy: 0.8842
Epoch 61/150
3/3 [==============================] - 0s 74ms/step - loss: 0.3847 - accuracy: 0.8474 - val_loss: 0.4797 - val_accuracy: 0.8000
Epoch 116/150
3/3 [==============================] - 0s 71ms/step - loss: 0.3991 - accuracy: 0.8342 - val_loss: 0.3948 - val_accuracy: 0.8842
Epoch 62/150
3/3 [==============================] - 0s 69ms/step - loss: 0.3723 - accuracy: 0.8474 - val_loss: 0.4803 - val_accuracy: 0.8105
Epoch 117/150
3/3 [==============================] - 0s 70ms/step - loss: 0.3919 - accuracy: 0.8500 - val_loss: 0.4810 - val_accuracy: 0.8105
3/3 [==============================] - 0s 72ms/step - loss: 0.4357 - accuracy: 0.7947 - val_loss: 0.3931 - val_accuracy: 0.8842
Epoch 63/150
Epoch 118/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4537 - accuracy: 0.8079 - val_loss: 0.3919 - val_accuracy: 0.8842
3/3 [==============================] - 0s 75ms/step - loss: 0.3818 - accuracy: 0.8368 - val_loss: 0.4818 - val_accuracy: 0.8105
Epoch 119/150
Epoch 64/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4098 - accuracy: 0.8289 - val_loss: 0.3909 - val_accuracy: 0.8842
Epoch 65/150
3/3 [==============================] - 0s 80ms/step - loss: 0.3863 - accuracy: 0.8447 - val_loss: 0.4823 - val_accuracy: 0.8105
Epoch 120/150
3/3 [==============================] - 0s 68ms/step - loss: 0.3719 - accuracy: 0.8526 - val_loss: 0.4828 - val_accuracy: 0.8105
Epoch 121/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4325 - accuracy: 0.7947 - val_loss: 0.3900 - val_accuracy: 0.8842
Epoch 66/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4108 - accuracy: 0.8263 - val_loss: 0.4832 - val_accuracy: 0.8105
Epoch 122/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4182 - accuracy: 0.8342 - val_loss: 0.3889 - val_accuracy: 0.8842
Epoch 67/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4345 - accuracy: 0.8158 - val_loss: 0.3882 - val_accuracy: 0.8842
Epoch 68/150
3/3 [==============================] - 0s 67ms/step - loss: 0.3922 - accuracy: 0.8553 - val_loss: 0.4835 - val_accuracy: 0.8105
Epoch 123/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4485 - accuracy: 0.8105 - val_loss: 0.3875 - val_accuracy: 0.8842
3/3 [==============================] - 0s 82ms/step - loss: 0.3681 - accuracy: 0.8526 - val_loss: 0.4844 - val_accuracy: 0.8105
Epoch 69/150
Epoch 124/150
3/3 [==============================] - 0s 67ms/step - loss: 0.3926 - accuracy: 0.8447 - val_loss: 0.4853 - val_accuracy: 0.8105
Epoch 125/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4649 - accuracy: 0.8000 - val_loss: 0.3864 - val_accuracy: 0.8842
Epoch 70/150
3/3 [==============================] - 0s 79ms/step - loss: 0.3844 - accuracy: 0.8342 - val_loss: 0.4862 - val_accuracy: 0.8105
Epoch 126/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4399 - accuracy: 0.8132 - val_loss: 0.3857 - val_accuracy: 0.8842
Epoch 71/150
3/3 [==============================] - 0s 56ms/step - loss: 0.3918 - accuracy: 0.8289 - val_loss: 0.3847 - val_accuracy: 0.8842
3/3 [==============================] - 0s 65ms/step - loss: 0.3947 - accuracy: 0.8289 - val_loss: 0.4866 - val_accuracy: 0.8105
Epoch 127/150
Epoch 72/150
3/3 [==============================] - 0s 68ms/step - loss: 0.3764 - accuracy: 0.8474 - val_loss: 0.4868 - val_accuracy: 0.8105
Epoch 128/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4218 - accuracy: 0.8263 - val_loss: 0.3841 - val_accuracy: 0.8842
Epoch 73/150
3/3 [==============================] - 0s 64ms/step - loss: 0.3881 - accuracy: 0.8474 - val_loss: 0.4867 - val_accuracy: 0.8105
Epoch 129/150
3/3 [==============================] - 0s 120ms/step - loss: 0.4522 - accuracy: 0.8105 - val_loss: 0.3837 - val_accuracy: 0.8842
Epoch 74/150
3/3 [==============================] - 0s 115ms/step - loss: 0.3632 - accuracy: 0.8579 - val_loss: 0.4865 - val_accuracy: 0.8105
Epoch 130/150
3/3 [==============================] - 0s 110ms/step - loss: 0.4217 - accuracy: 0.8105 - val_loss: 0.3828 - val_accuracy: 0.8842
Epoch 75/150
3/3 [==============================] - 0s 85ms/step - loss: 0.3946 - accuracy: 0.8342 - val_loss: 0.4863 - val_accuracy: 0.8105
Epoch 131/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4090 - accuracy: 0.8263 - val_loss: 0.3823 - val_accuracy: 0.8842
Epoch 76/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4029 - accuracy: 0.8316 - val_loss: 0.4859 - val_accuracy: 0.8105
Epoch 132/150
3/3 [==============================] - 0s 72ms/step - loss: 0.3908 - accuracy: 0.8237 - val_loss: 0.3811 - val_accuracy: 0.8842
Epoch 77/150
3/3 [==============================] - 0s 66ms/step - loss: 0.3881 - accuracy: 0.8368 - val_loss: 0.4852 - val_accuracy: 0.8105
Epoch 133/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4244 - accuracy: 0.7974 - val_loss: 0.3800 - val_accuracy: 0.8842
Epoch 78/150
3/3 [==============================] - 0s 77ms/step - loss: 0.3719 - accuracy: 0.8500 - val_loss: 0.4850 - val_accuracy: 0.8105
Epoch 134/150
3/3 [==============================] - 0s 88ms/step - loss: 0.4470 - accuracy: 0.7921 - val_loss: 0.3786 - val_accuracy: 0.8842
Epoch 79/150
3/3 [==============================] - 0s 94ms/step - loss: 0.3888 - accuracy: 0.8395 - val_loss: 0.4851 - val_accuracy: 0.8105
Epoch 135/150
3/3 [==============================] - 0s 98ms/step - loss: 0.4230 - accuracy: 0.8158 - val_loss: 0.3774 - val_accuracy: 0.8842
Epoch 80/150
3/3 [==============================] - 0s 90ms/step - loss: 0.3837 - accuracy: 0.8474 - val_loss: 0.4854 - val_accuracy: 0.8105
Epoch 136/150
3/3 [==============================] - 0s 134ms/step - loss: 0.3859 - accuracy: 0.8105 - val_loss: 0.3769 - val_accuracy: 0.8842
Epoch 81/150
3/3 [==============================] - 0s 96ms/step - loss: 0.3770 - accuracy: 0.8421 - val_loss: 0.4857 - val_accuracy: 0.8105
Epoch 137/150
3/3 [==============================] - 0s 91ms/step - loss: 0.4218 - accuracy: 0.8211 - val_loss: 0.3765 - val_accuracy: 0.8842
Epoch 82/150
3/3 [==============================] - 0s 96ms/step - loss: 0.3831 - accuracy: 0.8368 - val_loss: 0.4857 - val_accuracy: 0.8105
Epoch 138/150
3/3 [==============================] - 0s 96ms/step - loss: 0.4145 - accuracy: 0.8158 - val_loss: 0.3758 - val_accuracy: 0.8842
Epoch 83/150
3/3 [==============================] - 0s 86ms/step - loss: 0.3569 - accuracy: 0.8579 - val_loss: 0.4860 - val_accuracy: 0.8105
Epoch 139/150
3/3 [==============================] - 0s 104ms/step - loss: 0.4124 - accuracy: 0.8184 - val_loss: 0.3749 - val_accuracy: 0.8842
Epoch 84/150
3/3 [==============================] - 0s 97ms/step - loss: 0.3882 - accuracy: 0.8421 - val_loss: 0.4863 - val_accuracy: 0.8105
Epoch 140/150
3/3 [==============================] - 0s 105ms/step - loss: 0.4035 - accuracy: 0.8158 - val_loss: 0.3734 - val_accuracy: 0.8842
Epoch 85/150
3/3 [==============================] - 0s 93ms/step - loss: 0.3700 - accuracy: 0.8368 - val_loss: 0.4867 - val_accuracy: 0.8105
Epoch 141/150
3/3 [==============================] - 0s 74ms/step - loss: 0.3941 - accuracy: 0.8342 - val_loss: 0.4874 - val_accuracy: 0.8105
Epoch 142/150
3/3 [==============================] - 0s 119ms/step - loss: 0.4403 - accuracy: 0.8211 - val_loss: 0.3728 - val_accuracy: 0.8842
Epoch 86/150
3/3 [==============================] - 0s 75ms/step - loss: 0.3665 - accuracy: 0.8395 - val_loss: 0.4884 - val_accuracy: 0.8105
Epoch 143/150
3/3 [==============================] - 0s 53ms/step - loss: 0.3643 - accuracy: 0.8605 - val_loss: 0.4895 - val_accuracy: 0.8000
Epoch 144/150
3/3 [==============================] - 0s 123ms/step - loss: 0.4576 - accuracy: 0.8158 - val_loss: 0.3716 - val_accuracy: 0.8842
Epoch 87/150
3/3 [==============================] - 0s 78ms/step - loss: 0.3815 - accuracy: 0.8500 - val_loss: 0.4905 - val_accuracy: 0.8000
Epoch 145/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4105 - accuracy: 0.8132 - val_loss: 0.3709 - val_accuracy: 0.8842
Epoch 88/150
3/3 [==============================] - 0s 71ms/step - loss: 0.3495 - accuracy: 0.8474 - val_loss: 0.4911 - val_accuracy: 0.8000
Epoch 146/150
3/3 [==============================] - 0s 84ms/step - loss: 0.4277 - accuracy: 0.8079 - val_loss: 0.3703 - val_accuracy: 0.8842
Epoch 89/150
3/3 [==============================] - 0s 88ms/step - loss: 0.3803 - accuracy: 0.8447 - val_loss: 0.4917 - val_accuracy: 0.8000
Epoch 147/150
3/3 [==============================] - 0s 90ms/step - loss: 0.4177 - accuracy: 0.8132 - val_loss: 0.3696 - val_accuracy: 0.8842
Epoch 90/150
3/3 [==============================] - 0s 98ms/step - loss: 0.3504 - accuracy: 0.8474 - val_loss: 0.4922 - val_accuracy: 0.8000
Epoch 148/150
3/3 [==============================] - 0s 91ms/step - loss: 0.4204 - accuracy: 0.8289 - val_loss: 0.3694 - val_accuracy: 0.8842
Epoch 91/150
3/3 [==============================] - 0s 77ms/step - loss: 0.3611 - accuracy: 0.8553 - val_loss: 0.4929 - val_accuracy: 0.8000
Epoch 149/150
3/3 [==============================] - 0s 89ms/step - loss: 0.4462 - accuracy: 0.7921 - val_loss: 0.3690 - val_accuracy: 0.8842
Epoch 92/150
3/3 [==============================] - 0s 89ms/step - loss: 0.3612 - accuracy: 0.8658 - val_loss: 0.4934 - val_accuracy: 0.8000
Epoch 150/150
3/3 [==============================] - 0s 86ms/step - loss: 0.4243 - accuracy: 0.8105 - val_loss: 0.3691 - val_accuracy: 0.8842
Epoch 93/150
3/3 [==============================] - 0s 108ms/step - loss: 0.3747 - accuracy: 0.8474 - val_loss: 0.4940 - val_accuracy: 0.8000
3/3 [==============================] - 0s 102ms/step - loss: 0.4154 - accuracy: 0.8368 - val_loss: 0.3686 - val_accuracy: 0.8842
Epoch 94/150
3/3 [==============================] - 0s 98ms/step - loss: 0.4276 - accuracy: 0.8105 - val_loss: 0.3682 - val_accuracy: 0.8842
Epoch 95/150
3/3 [==============================] - 0s 77ms/step - loss: 0.3868 - accuracy: 0.8237 - val_loss: 0.3682 - val_accuracy: 0.8842
1/2 [==============>...............] - ETA: 0s - loss: 0.4847 - accuracy: 0.8281Epoch 96/150
2/2 [==============================] - 0s 41ms/step - loss: 0.4141 - accuracy: 0.8523
3/3 [==============================] - 0s 84ms/step - loss: 0.3970 - accuracy: 0.8368 - val_loss: 0.3674 - val_accuracy: 0.8842
Epoch 97/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4164 - accuracy: 0.8158 - val_loss: 0.3670 - val_accuracy: 0.8842
Epoch 98/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4562 - accuracy: 0.7895 - val_loss: 0.3667 - val_accuracy: 0.8842
Epoch 99/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4149 - accuracy: 0.8132 - val_loss: 0.3659 - val_accuracy: 0.8842
Epoch 100/150
1/3 [=========>....................] - ETA: 0s - loss: 0.3597 - accuracy: 0.8281Epoch 1/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4026 - accuracy: 0.8263 - val_loss: 0.3657 - val_accuracy: 0.8842
Epoch 101/150
3/3 [==============================] - 0s 67ms/step - loss: 0.3926 - accuracy: 0.8211 - val_loss: 0.3655 - val_accuracy: 0.8842
Epoch 102/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4411 - accuracy: 0.8000 - val_loss: 0.3651 - val_accuracy: 0.8842
Epoch 103/150
3/3 [==============================] - 0s 90ms/step - loss: 0.4073 - accuracy: 0.8132 - val_loss: 0.3649 - val_accuracy: 0.8842
Epoch 104/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4010 - accuracy: 0.8316 - val_loss: 0.3654 - val_accuracy: 0.8842
Epoch 105/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4187 - accuracy: 0.8105 - val_loss: 0.3657 - val_accuracy: 0.8842
Epoch 106/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4291 - accuracy: 0.8026 - val_loss: 0.3654 - val_accuracy: 0.8842
Epoch 107/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4006 - accuracy: 0.8237 - val_loss: 0.3643 - val_accuracy: 0.8842
Epoch 108/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4134 - accuracy: 0.8158 - val_loss: 0.3639 - val_accuracy: 0.8842
Epoch 109/150
3/3 [==============================] - 0s 85ms/step - loss: 0.3963 - accuracy: 0.8447 - val_loss: 0.3636 - val_accuracy: 0.8947
Epoch 110/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4303 - accuracy: 0.8053 - val_loss: 0.3635 - val_accuracy: 0.8947
Epoch 111/150
3/3 [==============================] - 0s 84ms/step - loss: 0.4070 - accuracy: 0.8289 - val_loss: 0.3636 - val_accuracy: 0.8947
Epoch 112/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4361 - accuracy: 0.8184 - val_loss: 0.3639 - val_accuracy: 0.8842
Epoch 113/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4079 - accuracy: 0.8132 - val_loss: 0.3640 - val_accuracy: 0.8947
Epoch 114/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4212 - accuracy: 0.8184 - val_loss: 0.3629 - val_accuracy: 0.8947
Epoch 115/150
3/3 [==============================] - 0s 70ms/step - loss: 0.3948 - accuracy: 0.8342 - val_loss: 0.3616 - val_accuracy: 0.8842
Epoch 116/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4152 - accuracy: 0.8105 - val_loss: 0.3604 - val_accuracy: 0.8842
Epoch 117/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4230 - accuracy: 0.8184 - val_loss: 0.3597 - val_accuracy: 0.8737
Epoch 118/150
3/3 [==============================] - 0s 61ms/step - loss: 0.4114 - accuracy: 0.8237 - val_loss: 0.3593 - val_accuracy: 0.8737
Epoch 119/150
3/3 [==============================] - 0s 71ms/step - loss: 0.3914 - accuracy: 0.8079 - val_loss: 0.3591 - val_accuracy: 0.8737
Epoch 120/150
3/3 [==============================] - 0s 57ms/step - loss: 0.3944 - accuracy: 0.8184 - val_loss: 0.3595 - val_accuracy: 0.8737
Epoch 121/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4006 - accuracy: 0.8316 - val_loss: 0.3594 - val_accuracy: 0.8737
Epoch 122/150
3/3 [==============================] - 0s 65ms/step - loss: 0.4027 - accuracy: 0.8368 - val_loss: 0.3594 - val_accuracy: 0.8737
Epoch 123/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4084 - accuracy: 0.8289 - val_loss: 0.3593 - val_accuracy: 0.8737
Epoch 124/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4341 - accuracy: 0.8079 - val_loss: 0.3597 - val_accuracy: 0.8737
Epoch 125/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4015 - accuracy: 0.8026 - val_loss: 0.3600 - val_accuracy: 0.8737
Epoch 126/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4139 - accuracy: 0.8158 - val_loss: 0.3597 - val_accuracy: 0.8737
Epoch 127/150
3/3 [==============================] - 0s 53ms/step - loss: 0.3842 - accuracy: 0.8421 - val_loss: 0.3597 - val_accuracy: 0.8737
Epoch 128/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4148 - accuracy: 0.8026 - val_loss: 0.3594 - val_accuracy: 0.8842
Epoch 129/150
3/3 [==============================] - 0s 71ms/step - loss: 0.3993 - accuracy: 0.8316 - val_loss: 0.3596 - val_accuracy: 0.8842
Epoch 130/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4012 - accuracy: 0.8368 - val_loss: 0.3595 - val_accuracy: 0.8842
Epoch 131/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4114 - accuracy: 0.8263 - val_loss: 0.3593 - val_accuracy: 0.8842
Epoch 132/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4413 - accuracy: 0.7842 - val_loss: 0.3587 - val_accuracy: 0.8737
Epoch 133/150
3/3 [==============================] - 0s 71ms/step - loss: 0.3901 - accuracy: 0.8263 - val_loss: 0.3581 - val_accuracy: 0.8737
Epoch 134/150
3/3 [==============================] - 6s 574ms/step - loss: 0.8278 - accuracy: 0.5435 - val_loss: 0.7094 - val_accuracy: 0.4737
Epoch 2/150
3/3 [==============================] - 0s 110ms/step - loss: 0.3948 - accuracy: 0.8184 - val_loss: 0.3580 - val_accuracy: 0.8737
Epoch 135/150
3/3 [==============================] - 0s 96ms/step - loss: 0.7668 - accuracy: 0.5831 - val_loss: 0.6987 - val_accuracy: 0.5053
Epoch 3/150
3/3 [==============================] - 0s 85ms/step - loss: 0.4111 - accuracy: 0.8026 - val_loss: 0.3583 - val_accuracy: 0.8737
Epoch 136/150
3/3 [==============================] - 0s 65ms/step - loss: 0.8295 - accuracy: 0.5699 - val_loss: 0.6889 - val_accuracy: 0.5789
Epoch 4/150
3/3 [==============================] - 0s 68ms/step - loss: 0.3983 - accuracy: 0.8368 - val_loss: 0.3579 - val_accuracy: 0.8737
3/3 [==============================] - 0s 55ms/step - loss: 0.7160 - accuracy: 0.5989 - val_loss: 0.6806 - val_accuracy: 0.6105
Epoch 5/150
Epoch 137/150
3/3 [==============================] - 0s 68ms/step - loss: 0.7216 - accuracy: 0.6069 - val_loss: 0.6724 - val_accuracy: 0.6211
Epoch 6/150
3/3 [==============================] - 0s 65ms/step - loss: 0.3864 - accuracy: 0.8421 - val_loss: 0.3573 - val_accuracy: 0.8737
Epoch 138/150
3/3 [==============================] - 0s 48ms/step - loss: 0.6788 - accuracy: 0.6306 - val_loss: 0.6643 - val_accuracy: 0.6211
Epoch 7/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4174 - accuracy: 0.8211 - val_loss: 0.3574 - val_accuracy: 0.8737
Epoch 139/150
3/3 [==============================] - 0s 78ms/step - loss: 0.7530 - accuracy: 0.5884 - val_loss: 0.6561 - val_accuracy: 0.6632
Epoch 8/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4328 - accuracy: 0.8053 - val_loss: 0.3577 - val_accuracy: 0.8737
Epoch 140/150
3/3 [==============================] - 0s 72ms/step - loss: 0.6679 - accuracy: 0.6596 - val_loss: 0.6484 - val_accuracy: 0.6526
Epoch 9/150
3/3 [==============================] - 0s 65ms/step - loss: 0.3794 - accuracy: 0.8263 - val_loss: 0.3583 - val_accuracy: 0.8737
Epoch 141/150
3/3 [==============================] - 0s 72ms/step - loss: 0.6273 - accuracy: 0.6807 - val_loss: 0.6423 - val_accuracy: 0.6526
Epoch 10/150
3/3 [==============================] - 0s 60ms/step - loss: 0.3980 - accuracy: 0.8289 - val_loss: 0.3585 - val_accuracy: 0.8737
Epoch 142/150
3/3 [==============================] - 0s 61ms/step - loss: 0.6680 - accuracy: 0.6623 - val_loss: 0.6360 - val_accuracy: 0.7158
Epoch 11/150
3/3 [==============================] - 0s 62ms/step - loss: 0.3905 - accuracy: 0.8237 - val_loss: 0.3585 - val_accuracy: 0.8737
Epoch 143/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4119 - accuracy: 0.8184 - val_loss: 0.3585 - val_accuracy: 0.8737
Epoch 144/150
3/3 [==============================] - 0s 70ms/step - loss: 0.6183 - accuracy: 0.6834 - val_loss: 0.6296 - val_accuracy: 0.7158
Epoch 12/150
3/3 [==============================] - 0s 57ms/step - loss: 0.6126 - accuracy: 0.7177 - val_loss: 0.6230 - val_accuracy: 0.7158
Epoch 13/150
3/3 [==============================] - 0s 62ms/step - loss: 0.3514 - accuracy: 0.8553 - val_loss: 0.3583 - val_accuracy: 0.8737
Epoch 145/150
3/3 [==============================] - 0s 60ms/step - loss: 0.6280 - accuracy: 0.6570 - val_loss: 0.6168 - val_accuracy: 0.7263
3/3 [==============================] - 0s 61ms/step - loss: 0.4123 - accuracy: 0.8237 - val_loss: 0.3581 - val_accuracy: 0.8737
Epoch 146/150
Epoch 14/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4024 - accuracy: 0.8395 - val_loss: 0.3584 - val_accuracy: 0.8737
Epoch 147/150
3/3 [==============================] - 0s 71ms/step - loss: 0.6252 - accuracy: 0.6860 - val_loss: 0.6108 - val_accuracy: 0.7158
Epoch 15/150
3/3 [==============================] - 0s 58ms/step - loss: 0.5758 - accuracy: 0.7230 - val_loss: 0.6056 - val_accuracy: 0.7158
Epoch 16/150
3/3 [==============================] - 0s 66ms/step - loss: 0.3891 - accuracy: 0.8342 - val_loss: 0.3589 - val_accuracy: 0.8737
Epoch 148/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4214 - accuracy: 0.7974 - val_loss: 0.3589 - val_accuracy: 0.8737
3/3 [==============================] - 0s 68ms/step - loss: 0.5960 - accuracy: 0.6992 - val_loss: 0.6003 - val_accuracy: 0.7368
Epoch 149/150
Epoch 17/150
3/3 [==============================] - 0s 59ms/step - loss: 0.5537 - accuracy: 0.7150 - val_loss: 0.5957 - val_accuracy: 0.7368
Epoch 18/150
3/3 [==============================] - 0s 68ms/step - loss: 0.3907 - accuracy: 0.8342 - val_loss: 0.3593 - val_accuracy: 0.8737
Epoch 150/150
3/3 [==============================] - 0s 54ms/step - loss: 0.3971 - accuracy: 0.8342 - val_loss: 0.3592 - val_accuracy: 0.8737
3/3 [==============================] - 0s 64ms/step - loss: 0.5863 - accuracy: 0.7309 - val_loss: 0.5908 - val_accuracy: 0.7368
Epoch 19/150
3/3 [==============================] - 0s 39ms/step - loss: 0.5382 - accuracy: 0.7335 - val_loss: 0.5860 - val_accuracy: 0.7368
Epoch 20/150
3/3 [==============================] - 0s 39ms/step - loss: 0.5824 - accuracy: 0.7071 - val_loss: 0.5818 - val_accuracy: 0.7368
Epoch 21/150
3/3 [==============================] - 0s 31ms/step - loss: 0.5540 - accuracy: 0.7388 - val_loss: 0.5773 - val_accuracy: 0.7368
Epoch 22/150
3/3 [==============================] - 0s 38ms/step - loss: 0.5719 - accuracy: 0.6939 - val_loss: 0.5731 - val_accuracy: 0.7368
Epoch 23/150
3/3 [==============================] - 0s 41ms/step - loss: 0.5513 - accuracy: 0.7256 - val_loss: 0.5686 - val_accuracy: 0.7368
Epoch 24/150
3/3 [==============================] - 0s 41ms/step - loss: 0.5455 - accuracy: 0.7203 - val_loss: 0.5644 - val_accuracy: 0.7263
Epoch 25/150
3/3 [==============================] - 0s 60ms/step - loss: 0.5406 - accuracy: 0.7520 - val_loss: 0.5606 - val_accuracy: 0.7368
Epoch 26/150
3/3 [==============================] - 0s 49ms/step - loss: 0.5795 - accuracy: 0.7045 - val_loss: 0.5570 - val_accuracy: 0.7368
Epoch 27/150
3/3 [==============================] - 0s 39ms/step - loss: 0.5198 - accuracy: 0.7652 - val_loss: 0.5532 - val_accuracy: 0.7263
Epoch 28/150
3/3 [==============================] - 0s 49ms/step - loss: 0.5009 - accuracy: 0.7520 - val_loss: 0.5495 - val_accuracy: 0.7263
Epoch 29/150
3/3 [==============================] - 0s 39ms/step - loss: 0.5226 - accuracy: 0.7573 - val_loss: 0.5460 - val_accuracy: 0.7263
Epoch 30/150
3/3 [==============================] - 0s 42ms/step - loss: 0.5147 - accuracy: 0.7520 - val_loss: 0.5428 - val_accuracy: 0.7263
Epoch 31/150
3/3 [==============================] - 0s 39ms/step - loss: 0.5314 - accuracy: 0.7625 - val_loss: 0.5399 - val_accuracy: 0.7368
Epoch 32/150
3/3 [==============================] - 0s 39ms/step - loss: 0.5273 - accuracy: 0.7652 - val_loss: 0.5370 - val_accuracy: 0.7368
Epoch 33/150
3/3 [==============================] - 0s 47ms/step - loss: 0.5277 - accuracy: 0.7625 - val_loss: 0.5343 - val_accuracy: 0.7368
Epoch 34/150
3/3 [==============================] - 0s 30ms/step - loss: 0.4856 - accuracy: 0.7599 - val_loss: 0.5309 - val_accuracy: 0.7368
Epoch 35/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4787 - accuracy: 0.7836 - val_loss: 0.5279 - val_accuracy: 0.7368
Epoch 36/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4612 - accuracy: 0.8127 - val_loss: 0.5251 - val_accuracy: 0.7263
Epoch 37/150
3/3 [==============================] - 0s 42ms/step - loss: 0.5410 - accuracy: 0.7335 - val_loss: 0.5223 - val_accuracy: 0.7474
Epoch 38/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4965 - accuracy: 0.7414 - val_loss: 0.5195 - val_accuracy: 0.7474
Epoch 39/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4910 - accuracy: 0.7625 - val_loss: 0.5167 - val_accuracy: 0.7474
Epoch 40/150
3/3 [==============================] - 0s 30ms/step - loss: 0.5221 - accuracy: 0.7546 - val_loss: 0.5141 - val_accuracy: 0.7474
Epoch 41/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4933 - accuracy: 0.7625 - val_loss: 0.5117 - val_accuracy: 0.7368
Epoch 42/150
3/3 [==============================] - 0s 33ms/step - loss: 0.4664 - accuracy: 0.7863 - val_loss: 0.5094 - val_accuracy: 0.7474
Epoch 43/150
3/3 [==============================] - 0s 31ms/step - loss: 0.4723 - accuracy: 0.7704 - val_loss: 0.5069 - val_accuracy: 0.7474
Epoch 44/150
3/3 [==============================] - 0s 40ms/step - loss: 0.5052 - accuracy: 0.7388 - val_loss: 0.5045 - val_accuracy: 0.7474
Epoch 45/150
3/3 [==============================] - 0s 34ms/step - loss: 0.5207 - accuracy: 0.7678 - val_loss: 0.5026 - val_accuracy: 0.7474
Epoch 46/150
3/3 [==============================] - 0s 49ms/step - loss: 0.5111 - accuracy: 0.7784 - val_loss: 0.5007 - val_accuracy: 0.7368
Epoch 47/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4565 - accuracy: 0.8021 - val_loss: 0.4989 - val_accuracy: 0.7368
Epoch 48/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4876 - accuracy: 0.7625 - val_loss: 0.4971 - val_accuracy: 0.7474
Epoch 49/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4657 - accuracy: 0.7836 - val_loss: 0.4954 - val_accuracy: 0.7474
Epoch 50/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4617 - accuracy: 0.7810 - val_loss: 0.4935 - val_accuracy: 0.7579
Epoch 51/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4723 - accuracy: 0.7704 - val_loss: 0.4917 - val_accuracy: 0.7579
Epoch 52/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4596 - accuracy: 0.7863 - val_loss: 0.4901 - val_accuracy: 0.7579
Epoch 53/150
3/3 [==============================] - 0s 61ms/step - loss: 0.4725 - accuracy: 0.7995 - val_loss: 0.4886 - val_accuracy: 0.7579
Epoch 54/150
3/3 [==============================] - 0s 60ms/step - loss: 0.4904 - accuracy: 0.7784 - val_loss: 0.4871 - val_accuracy: 0.7579
Epoch 55/150
3/3 [==============================] - 0s 58ms/step - loss: 0.4645 - accuracy: 0.7836 - val_loss: 0.4856 - val_accuracy: 0.7579
Epoch 56/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4462 - accuracy: 0.8021 - val_loss: 0.4842 - val_accuracy: 0.7579
Epoch 57/150
3/3 [==============================] - 0s 58ms/step - loss: 0.4683 - accuracy: 0.7810 - val_loss: 0.4828 - val_accuracy: 0.7579
Epoch 58/150
3/3 [==============================] - 0s 57ms/step - loss: 0.4901 - accuracy: 0.7995 - val_loss: 0.4816 - val_accuracy: 0.7579
Epoch 59/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4710 - accuracy: 0.7916 - val_loss: 0.4802 - val_accuracy: 0.7684
Epoch 60/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4758 - accuracy: 0.7757 - val_loss: 0.4793 - val_accuracy: 0.7684
Epoch 61/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4617 - accuracy: 0.7836 - val_loss: 0.4782 - val_accuracy: 0.7684
Epoch 62/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4458 - accuracy: 0.8127 - val_loss: 0.4774 - val_accuracy: 0.7684
Epoch 63/150
3/3 [==============================] - 0s 50ms/step - loss: 0.4365 - accuracy: 0.7942 - val_loss: 0.4764 - val_accuracy: 0.7684
Epoch 64/150
3/3 [==============================] - 0s 50ms/step - loss: 0.4171 - accuracy: 0.8074 - val_loss: 0.4755 - val_accuracy: 0.7684
Epoch 65/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4594 - accuracy: 0.7836 - val_loss: 0.4746 - val_accuracy: 0.7684
Epoch 66/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4374 - accuracy: 0.7942 - val_loss: 0.4737 - val_accuracy: 0.7579
Epoch 67/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4545 - accuracy: 0.7995 - val_loss: 0.4726 - val_accuracy: 0.7579
Epoch 68/150
3/3 [==============================] - 0s 58ms/step - loss: 0.4311 - accuracy: 0.8232 - val_loss: 0.4719 - val_accuracy: 0.7684
Epoch 69/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4688 - accuracy: 0.7863 - val_loss: 0.4714 - val_accuracy: 0.7684
Epoch 70/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4509 - accuracy: 0.7968 - val_loss: 0.4709 - val_accuracy: 0.7684
Epoch 71/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4359 - accuracy: 0.8311 - val_loss: 0.4700 - val_accuracy: 0.7684
Epoch 72/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4539 - accuracy: 0.7942 - val_loss: 0.4696 - val_accuracy: 0.7684
Epoch 73/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4161 - accuracy: 0.8285 - val_loss: 0.4691 - val_accuracy: 0.7684
Epoch 74/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4589 - accuracy: 0.7863 - val_loss: 0.4684 - val_accuracy: 0.7684
Epoch 75/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4519 - accuracy: 0.8338 - val_loss: 0.4681 - val_accuracy: 0.7684
Epoch 76/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4752 - accuracy: 0.7863 - val_loss: 0.4680 - val_accuracy: 0.7684
Epoch 77/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4369 - accuracy: 0.8179 - val_loss: 0.4676 - val_accuracy: 0.7684
Epoch 78/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4612 - accuracy: 0.7916 - val_loss: 0.4674 - val_accuracy: 0.7684
Epoch 79/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4444 - accuracy: 0.8127 - val_loss: 0.4672 - val_accuracy: 0.7684
Epoch 80/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4533 - accuracy: 0.7836 - val_loss: 0.4670 - val_accuracy: 0.7684
Epoch 81/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4536 - accuracy: 0.7995 - val_loss: 0.4665 - val_accuracy: 0.7789
Epoch 82/150
3/3 [==============================] - 0s 58ms/step - loss: 0.4219 - accuracy: 0.8074 - val_loss: 0.4660 - val_accuracy: 0.7789
Epoch 83/150
3/3 [==============================] - 0s 60ms/step - loss: 0.4441 - accuracy: 0.8153 - val_loss: 0.4658 - val_accuracy: 0.7684
Epoch 84/150
3/3 [==============================] - 0s 58ms/step - loss: 0.4110 - accuracy: 0.8232 - val_loss: 0.4657 - val_accuracy: 0.7684
Epoch 85/150
3/3 [==============================] - 0s 49ms/step - loss: 0.4518 - accuracy: 0.8127 - val_loss: 0.4658 - val_accuracy: 0.7684
Epoch 86/150
3/3 [==============================] - 0s 58ms/step - loss: 0.4061 - accuracy: 0.8285 - val_loss: 0.4657 - val_accuracy: 0.7684
Epoch 87/150
3/3 [==============================] - 0s 57ms/step - loss: 0.3900 - accuracy: 0.8153 - val_loss: 0.4654 - val_accuracy: 0.7684
Epoch 88/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4185 - accuracy: 0.8338 - val_loss: 0.4653 - val_accuracy: 0.7684
Epoch 89/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4316 - accuracy: 0.8153 - val_loss: 0.4655 - val_accuracy: 0.7684
Epoch 90/150
3/3 [==============================] - 0s 60ms/step - loss: 0.4287 - accuracy: 0.7810 - val_loss: 0.4656 - val_accuracy: 0.7684
Epoch 91/150
3/3 [==============================] - 0s 50ms/step - loss: 0.4597 - accuracy: 0.8153 - val_loss: 0.4657 - val_accuracy: 0.7684
Epoch 92/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4172 - accuracy: 0.8179 - val_loss: 0.4655 - val_accuracy: 0.7684
Epoch 93/150
3/3 [==============================] - 0s 60ms/step - loss: 0.4230 - accuracy: 0.8100 - val_loss: 0.4657 - val_accuracy: 0.7684
Epoch 94/150
3/3 [==============================] - 0s 57ms/step - loss: 0.4246 - accuracy: 0.7889 - val_loss: 0.4658 - val_accuracy: 0.7684
Epoch 95/150
3/3 [==============================] - 0s 57ms/step - loss: 0.4194 - accuracy: 0.8074 - val_loss: 0.4661 - val_accuracy: 0.7684
Epoch 96/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4202 - accuracy: 0.8153 - val_loss: 0.4664 - val_accuracy: 0.7684
Epoch 97/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4223 - accuracy: 0.8206 - val_loss: 0.4668 - val_accuracy: 0.7684
Epoch 98/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4187 - accuracy: 0.8338 - val_loss: 0.4670 - val_accuracy: 0.7684
Epoch 99/150
3/3 [==============================] - 0s 63ms/step - loss: 0.3939 - accuracy: 0.8470 - val_loss: 0.4669 - val_accuracy: 0.7684
Epoch 100/150
3/3 [==============================] - 0s 60ms/step - loss: 0.3985 - accuracy: 0.8206 - val_loss: 0.4672 - val_accuracy: 0.7684
Epoch 101/150
3/3 [==============================] - 0s 60ms/step - loss: 0.4361 - accuracy: 0.7995 - val_loss: 0.4672 - val_accuracy: 0.7684
Epoch 102/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4510 - accuracy: 0.8021 - val_loss: 0.4676 - val_accuracy: 0.7684
Epoch 103/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4179 - accuracy: 0.8311 - val_loss: 0.4679 - val_accuracy: 0.7789
Epoch 104/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4377 - accuracy: 0.8047 - val_loss: 0.4682 - val_accuracy: 0.7895
Epoch 105/150
3/3 [==============================] - 0s 57ms/step - loss: 0.3824 - accuracy: 0.8364 - val_loss: 0.4683 - val_accuracy: 0.7895
Epoch 106/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4247 - accuracy: 0.8232 - val_loss: 0.4685 - val_accuracy: 0.7895
Epoch 107/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4139 - accuracy: 0.8259 - val_loss: 0.4685 - val_accuracy: 0.7895
Epoch 108/150
3/3 [==============================] - 0s 44ms/step - loss: 0.3931 - accuracy: 0.8259 - val_loss: 0.4688 - val_accuracy: 0.7895
Epoch 109/150
3/3 [==============================] - 0s 48ms/step - loss: 0.3599 - accuracy: 0.8470 - val_loss: 0.4689 - val_accuracy: 0.7895
Epoch 110/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4084 - accuracy: 0.8311 - val_loss: 0.4692 - val_accuracy: 0.7895
Epoch 111/150
3/3 [==============================] - 0s 33ms/step - loss: 0.4389 - accuracy: 0.8100 - val_loss: 0.4698 - val_accuracy: 0.8000
Epoch 112/150
3/3 [==============================] - 0s 37ms/step - loss: 0.3772 - accuracy: 0.8654 - val_loss: 0.4701 - val_accuracy: 0.8000
Epoch 113/150
3/3 [==============================] - 0s 57ms/step - loss: 0.4123 - accuracy: 0.8100 - val_loss: 0.4704 - val_accuracy: 0.8000
Epoch 114/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4111 - accuracy: 0.8364 - val_loss: 0.4708 - val_accuracy: 0.8000
Epoch 115/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4390 - accuracy: 0.8206 - val_loss: 0.4712 - val_accuracy: 0.8000
Epoch 116/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4156 - accuracy: 0.8074 - val_loss: 0.4715 - val_accuracy: 0.8000
Epoch 117/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4179 - accuracy: 0.7995 - val_loss: 0.4717 - val_accuracy: 0.8000
Epoch 118/150
3/3 [==============================] - 0s 42ms/step - loss: 0.4216 - accuracy: 0.8100 - val_loss: 0.4717 - val_accuracy: 0.8000
Epoch 119/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4212 - accuracy: 0.8206 - val_loss: 0.4720 - val_accuracy: 0.8000
Epoch 120/150
3/3 [==============================] - 0s 43ms/step - loss: 0.3908 - accuracy: 0.8311 - val_loss: 0.4721 - val_accuracy: 0.8000
Epoch 121/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4061 - accuracy: 0.8259 - val_loss: 0.4723 - val_accuracy: 0.8000
Epoch 122/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4152 - accuracy: 0.8232 - val_loss: 0.4725 - val_accuracy: 0.8000
Epoch 123/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4118 - accuracy: 0.8074 - val_loss: 0.4726 - val_accuracy: 0.8000
Epoch 124/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4242 - accuracy: 0.8153 - val_loss: 0.4726 - val_accuracy: 0.8000
Epoch 125/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4075 - accuracy: 0.8285 - val_loss: 0.4726 - val_accuracy: 0.8000
Epoch 126/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4122 - accuracy: 0.8232 - val_loss: 0.4729 - val_accuracy: 0.8000
Epoch 127/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4161 - accuracy: 0.8206 - val_loss: 0.4734 - val_accuracy: 0.8000
Epoch 128/150
2/2 [==============================] - 0s 10ms/step - loss: 0.4221 - accuracy: 0.8439
3/3 [==============================] - 0s 71ms/step - loss: 0.3848 - accuracy: 0.8206 - val_loss: 0.4734 - val_accuracy: 0.8000
Epoch 129/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4011 - accuracy: 0.8443 - val_loss: 0.4737 - val_accuracy: 0.8000
Epoch 130/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4236 - accuracy: 0.8127 - val_loss: 0.4743 - val_accuracy: 0.8000
Epoch 131/150
3/3 [==============================] - 0s 86ms/step - loss: 0.4209 - accuracy: 0.8285 - val_loss: 0.4745 - val_accuracy: 0.8000
Epoch 132/150
1/3 [=========>....................] - ETA: 0s - loss: 0.3950 - accuracy: 0.8438Epoch 1/150
3/3 [==============================] - 0s 96ms/step - loss: 0.3920 - accuracy: 0.8232 - val_loss: 0.4743 - val_accuracy: 0.8000
Epoch 133/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4004 - accuracy: 0.8206 - val_loss: 0.4742 - val_accuracy: 0.8000
Epoch 134/150
3/3 [==============================] - 0s 71ms/step - loss: 0.3998 - accuracy: 0.8179 - val_loss: 0.4745 - val_accuracy: 0.8000
Epoch 135/150
3/3 [==============================] - 0s 85ms/step - loss: 0.4116 - accuracy: 0.8232 - val_loss: 0.4743 - val_accuracy: 0.8000
Epoch 136/150
3/3 [==============================] - 0s 89ms/step - loss: 0.4047 - accuracy: 0.8443 - val_loss: 0.4744 - val_accuracy: 0.8000
Epoch 137/150
3/3 [==============================] - 0s 82ms/step - loss: 0.3816 - accuracy: 0.8047 - val_loss: 0.4747 - val_accuracy: 0.8000
Epoch 138/150
3/3 [==============================] - 0s 72ms/step - loss: 0.3908 - accuracy: 0.8364 - val_loss: 0.4750 - val_accuracy: 0.8000
Epoch 139/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4111 - accuracy: 0.8311 - val_loss: 0.4751 - val_accuracy: 0.8000
Epoch 140/150
3/3 [==============================] - 0s 72ms/step - loss: 0.3986 - accuracy: 0.8206 - val_loss: 0.4754 - val_accuracy: 0.8000
Epoch 141/150
3/3 [==============================] - 0s 78ms/step - loss: 0.3787 - accuracy: 0.8417 - val_loss: 0.4759 - val_accuracy: 0.8000
Epoch 142/150
3/3 [==============================] - 0s 76ms/step - loss: 0.3401 - accuracy: 0.8654 - val_loss: 0.4765 - val_accuracy: 0.8000
Epoch 143/150
3/3 [==============================] - 0s 72ms/step - loss: 0.3979 - accuracy: 0.8470 - val_loss: 0.4768 - val_accuracy: 0.8000
Epoch 144/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4083 - accuracy: 0.8127 - val_loss: 0.4770 - val_accuracy: 0.8000
Epoch 145/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4043 - accuracy: 0.8153 - val_loss: 0.4770 - val_accuracy: 0.8000
Epoch 146/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4379 - accuracy: 0.7995 - val_loss: 0.4775 - val_accuracy: 0.8000
Epoch 147/150
3/3 [==============================] - 0s 77ms/step - loss: 0.3752 - accuracy: 0.8522 - val_loss: 0.4777 - val_accuracy: 0.8000
Epoch 148/150
3/3 [==============================] - 0s 106ms/step - loss: 0.3779 - accuracy: 0.8443 - val_loss: 0.4779 - val_accuracy: 0.8000
Epoch 149/150
3/3 [==============================] - 0s 64ms/step - loss: 0.3689 - accuracy: 0.8496 - val_loss: 0.4780 - val_accuracy: 0.8000
Epoch 150/150
3/3 [==============================] - 0s 96ms/step - loss: 0.3658 - accuracy: 0.8628 - val_loss: 0.4783 - val_accuracy: 0.8000
2/2 [==============================] - 0s 20ms/step - loss: 0.5245 - accuracy: 0.7773
Epoch 1/150
3/3 [==============================] - 6s 504ms/step - loss: 0.7774 - accuracy: 0.5921 - val_loss: 0.6614 - val_accuracy: 0.6211
Epoch 2/150
3/3 [==============================] - 0s 78ms/step - loss: 0.7295 - accuracy: 0.6158 - val_loss: 0.6535 - val_accuracy: 0.6526
Epoch 3/150
3/3 [==============================] - 0s 91ms/step - loss: 0.7226 - accuracy: 0.6553 - val_loss: 0.6465 - val_accuracy: 0.6632
Epoch 4/150
3/3 [==============================] - 0s 83ms/step - loss: 0.6795 - accuracy: 0.6658 - val_loss: 0.6397 - val_accuracy: 0.6632
Epoch 5/150
3/3 [==============================] - 0s 83ms/step - loss: 0.6375 - accuracy: 0.6842 - val_loss: 0.6330 - val_accuracy: 0.6737
Epoch 6/150
3/3 [==============================] - 0s 70ms/step - loss: 0.6389 - accuracy: 0.6868 - val_loss: 0.6269 - val_accuracy: 0.6632
Epoch 7/150
3/3 [==============================] - 0s 70ms/step - loss: 0.6258 - accuracy: 0.6684 - val_loss: 0.6205 - val_accuracy: 0.6737
Epoch 8/150
3/3 [==============================] - 0s 64ms/step - loss: 0.6258 - accuracy: 0.6921 - val_loss: 0.6152 - val_accuracy: 0.6737
Epoch 9/150
3/3 [==============================] - 0s 81ms/step - loss: 0.5960 - accuracy: 0.6974 - val_loss: 0.6099 - val_accuracy: 0.6947
Epoch 10/150
3/3 [==============================] - 0s 90ms/step - loss: 0.5939 - accuracy: 0.7158 - val_loss: 0.6052 - val_accuracy: 0.7053
Epoch 11/150
3/3 [==============================] - 0s 93ms/step - loss: 0.5684 - accuracy: 0.7316 - val_loss: 0.6005 - val_accuracy: 0.7053
Epoch 12/150
3/3 [==============================] - 0s 77ms/step - loss: 0.5355 - accuracy: 0.7342 - val_loss: 0.5956 - val_accuracy: 0.6842
Epoch 13/150
3/3 [==============================] - 0s 74ms/step - loss: 0.6157 - accuracy: 0.6947 - val_loss: 0.5909 - val_accuracy: 0.6947
Epoch 14/150
3/3 [==============================] - 0s 76ms/step - loss: 0.5865 - accuracy: 0.7368 - val_loss: 0.5866 - val_accuracy: 0.7053
Epoch 15/150
3/3 [==============================] - 0s 68ms/step - loss: 0.5480 - accuracy: 0.7316 - val_loss: 0.5824 - val_accuracy: 0.6947
Epoch 16/150
3/3 [==============================] - 0s 89ms/step - loss: 0.5903 - accuracy: 0.7132 - val_loss: 0.5785 - val_accuracy: 0.7158
Epoch 17/150
3/3 [==============================] - 0s 74ms/step - loss: 0.5456 - accuracy: 0.7579 - val_loss: 0.5747 - val_accuracy: 0.7158
Epoch 18/150
3/3 [==============================] - 0s 84ms/step - loss: 0.5932 - accuracy: 0.7237 - val_loss: 0.5713 - val_accuracy: 0.7263
Epoch 19/150
3/3 [==============================] - 0s 74ms/step - loss: 0.5542 - accuracy: 0.7474 - val_loss: 0.5680 - val_accuracy: 0.7368
Epoch 20/150
3/3 [==============================] - 0s 71ms/step - loss: 0.5804 - accuracy: 0.7211 - val_loss: 0.5648 - val_accuracy: 0.7474
Epoch 21/150
3/3 [==============================] - 0s 83ms/step - loss: 0.5442 - accuracy: 0.7395 - val_loss: 0.5614 - val_accuracy: 0.7474
Epoch 22/150
3/3 [==============================] - 0s 67ms/step - loss: 0.5493 - accuracy: 0.7342 - val_loss: 0.5581 - val_accuracy: 0.7474
Epoch 23/150
3/3 [==============================] - 0s 80ms/step - loss: 0.5421 - accuracy: 0.7474 - val_loss: 0.5550 - val_accuracy: 0.7474
Epoch 24/150
3/3 [==============================] - 0s 72ms/step - loss: 0.5416 - accuracy: 0.7395 - val_loss: 0.5519 - val_accuracy: 0.7579
Epoch 25/150
3/3 [==============================] - 0s 76ms/step - loss: 0.5597 - accuracy: 0.7553 - val_loss: 0.5490 - val_accuracy: 0.7474
Epoch 26/150
3/3 [==============================] - 0s 72ms/step - loss: 0.5514 - accuracy: 0.7658 - val_loss: 0.5463 - val_accuracy: 0.7368
Epoch 27/150
3/3 [==============================] - 6s 545ms/step - loss: 0.9558 - accuracy: 0.4526 - val_loss: 0.7245 - val_accuracy: 0.3789
Epoch 2/150
3/3 [==============================] - 0s 80ms/step - loss: 0.5652 - accuracy: 0.7447 - val_loss: 0.5438 - val_accuracy: 0.7368
Epoch 28/150
3/3 [==============================] - 0s 81ms/step - loss: 0.9089 - accuracy: 0.4947 - val_loss: 0.7102 - val_accuracy: 0.4526
Epoch 3/150
3/3 [==============================] - 0s 69ms/step - loss: 0.5166 - accuracy: 0.7684 - val_loss: 0.5411 - val_accuracy: 0.7368
Epoch 29/150
3/3 [==============================] - 0s 88ms/step - loss: 0.9407 - accuracy: 0.4816 - val_loss: 0.6975 - val_accuracy: 0.4842
Epoch 4/150
3/3 [==============================] - 0s 88ms/step - loss: 0.5169 - accuracy: 0.7737 - val_loss: 0.5386 - val_accuracy: 0.7368
Epoch 30/150
3/3 [==============================] - 0s 69ms/step - loss: 0.8424 - accuracy: 0.5395 - val_loss: 0.6852 - val_accuracy: 0.6105
Epoch 5/150
3/3 [==============================] - 0s 68ms/step - loss: 0.5362 - accuracy: 0.7605 - val_loss: 0.5359 - val_accuracy: 0.7368
Epoch 31/150
3/3 [==============================] - 0s 77ms/step - loss: 0.8165 - accuracy: 0.5395 - val_loss: 0.6741 - val_accuracy: 0.6000
Epoch 6/150
3/3 [==============================] - 0s 67ms/step - loss: 0.5619 - accuracy: 0.7263 - val_loss: 0.5331 - val_accuracy: 0.7368
Epoch 32/150
3/3 [==============================] - 0s 64ms/step - loss: 0.7741 - accuracy: 0.5737 - val_loss: 0.6633 - val_accuracy: 0.6105
Epoch 7/150
3/3 [==============================] - 0s 72ms/step - loss: 0.5015 - accuracy: 0.7421 - val_loss: 0.5306 - val_accuracy: 0.7368
Epoch 33/150
3/3 [==============================] - 0s 76ms/step - loss: 0.7753 - accuracy: 0.5763 - val_loss: 0.6536 - val_accuracy: 0.6632
Epoch 8/150
3/3 [==============================] - 0s 77ms/step - loss: 0.5210 - accuracy: 0.7474 - val_loss: 0.5283 - val_accuracy: 0.7474
Epoch 34/150
3/3 [==============================] - 0s 70ms/step - loss: 0.7040 - accuracy: 0.6026 - val_loss: 0.6447 - val_accuracy: 0.7053
Epoch 9/150
3/3 [==============================] - 0s 101ms/step - loss: 0.5157 - accuracy: 0.7737 - val_loss: 0.5262 - val_accuracy: 0.7474
Epoch 35/150
3/3 [==============================] - 0s 79ms/step - loss: 0.7009 - accuracy: 0.6105 - val_loss: 0.6359 - val_accuracy: 0.7158
Epoch 10/150
3/3 [==============================] - 0s 81ms/step - loss: 0.5517 - accuracy: 0.7579 - val_loss: 0.5241 - val_accuracy: 0.7474
Epoch 36/150
3/3 [==============================] - 0s 77ms/step - loss: 0.6772 - accuracy: 0.6447 - val_loss: 0.6277 - val_accuracy: 0.7158
Epoch 11/150
3/3 [==============================] - 0s 83ms/step - loss: 0.5316 - accuracy: 0.7711 - val_loss: 0.5219 - val_accuracy: 0.7474
3/3 [==============================] - 0s 63ms/step - loss: 0.6946 - accuracy: 0.6237 - val_loss: 0.6201 - val_accuracy: 0.7263
Epoch 37/150
Epoch 12/150
3/3 [==============================] - 0s 61ms/step - loss: 0.5337 - accuracy: 0.7632 - val_loss: 0.5201 - val_accuracy: 0.7474
Epoch 38/150
3/3 [==============================] - 0s 67ms/step - loss: 0.6277 - accuracy: 0.6842 - val_loss: 0.6133 - val_accuracy: 0.7368
Epoch 13/150
3/3 [==============================] - 0s 71ms/step - loss: 0.6794 - accuracy: 0.6684 - val_loss: 0.6065 - val_accuracy: 0.7579
3/3 [==============================] - 0s 84ms/step - loss: 0.5214 - accuracy: 0.7553 - val_loss: 0.5185 - val_accuracy: 0.7474
Epoch 39/150
Epoch 14/150
3/3 [==============================] - 0s 66ms/step - loss: 0.5500 - accuracy: 0.7684 - val_loss: 0.5166 - val_accuracy: 0.7474
3/3 [==============================] - 0s 69ms/step - loss: 0.6133 - accuracy: 0.6868 - val_loss: 0.6002 - val_accuracy: 0.7579
Epoch 40/150
Epoch 15/150
3/3 [==============================] - 0s 99ms/step - loss: 0.4867 - accuracy: 0.7605 - val_loss: 0.5147 - val_accuracy: 0.7579
3/3 [==============================] - 0s 104ms/step - loss: 0.6165 - accuracy: 0.6947 - val_loss: 0.5941 - val_accuracy: 0.7579
Epoch 41/150
Epoch 16/150
3/3 [==============================] - 0s 72ms/step - loss: 0.5961 - accuracy: 0.7026 - val_loss: 0.5883 - val_accuracy: 0.7579
Epoch 17/150
3/3 [==============================] - 0s 105ms/step - loss: 0.4976 - accuracy: 0.7789 - val_loss: 0.5128 - val_accuracy: 0.7579
Epoch 42/150
3/3 [==============================] - 0s 78ms/step - loss: 0.6302 - accuracy: 0.6947 - val_loss: 0.5823 - val_accuracy: 0.7579
Epoch 18/150
3/3 [==============================] - 0s 69ms/step - loss: 0.5153 - accuracy: 0.7632 - val_loss: 0.5109 - val_accuracy: 0.7579
Epoch 43/150
3/3 [==============================] - 0s 52ms/step - loss: 0.5127 - accuracy: 0.7605 - val_loss: 0.5093 - val_accuracy: 0.7579
3/3 [==============================] - 0s 72ms/step - loss: 0.6164 - accuracy: 0.7000 - val_loss: 0.5773 - val_accuracy: 0.7368
Epoch 19/150
Epoch 44/150
3/3 [==============================] - 0s 75ms/step - loss: 0.6039 - accuracy: 0.6974 - val_loss: 0.5722 - val_accuracy: 0.7368
Epoch 20/150
3/3 [==============================] - 0s 68ms/step - loss: 0.5240 - accuracy: 0.7711 - val_loss: 0.5075 - val_accuracy: 0.7474
Epoch 45/150
3/3 [==============================] - 0s 64ms/step - loss: 0.6139 - accuracy: 0.7079 - val_loss: 0.5675 - val_accuracy: 0.7368
Epoch 21/150
3/3 [==============================] - 0s 70ms/step - loss: 0.5052 - accuracy: 0.7763 - val_loss: 0.5061 - val_accuracy: 0.7474
Epoch 46/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4928 - accuracy: 0.7763 - val_loss: 0.5046 - val_accuracy: 0.7474
3/3 [==============================] - 0s 71ms/step - loss: 0.6179 - accuracy: 0.7132 - val_loss: 0.5629 - val_accuracy: 0.7474
Epoch 22/150
Epoch 47/150
3/3 [==============================] - 0s 92ms/step - loss: 0.4941 - accuracy: 0.7789 - val_loss: 0.5033 - val_accuracy: 0.7474
3/3 [==============================] - 0s 106ms/step - loss: 0.5935 - accuracy: 0.7132 - val_loss: 0.5583 - val_accuracy: 0.7474
Epoch 48/150
Epoch 23/150
3/3 [==============================] - 0s 55ms/step - loss: 0.5805 - accuracy: 0.7263 - val_loss: 0.5540 - val_accuracy: 0.7474
Epoch 24/150
3/3 [==============================] - 0s 82ms/step - loss: 0.5128 - accuracy: 0.7658 - val_loss: 0.5016 - val_accuracy: 0.7474
Epoch 49/150
3/3 [==============================] - 0s 84ms/step - loss: 0.6309 - accuracy: 0.6974 - val_loss: 0.5500 - val_accuracy: 0.7474
Epoch 25/150
3/3 [==============================] - 0s 70ms/step - loss: 0.5380 - accuracy: 0.7474 - val_loss: 0.5000 - val_accuracy: 0.7474
Epoch 50/150
3/3 [==============================] - 0s 82ms/step - loss: 0.5795 - accuracy: 0.7158 - val_loss: 0.5459 - val_accuracy: 0.7474
Epoch 26/150
3/3 [==============================] - 0s 82ms/step - loss: 0.5061 - accuracy: 0.7895 - val_loss: 0.4984 - val_accuracy: 0.7474
Epoch 51/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4798 - accuracy: 0.7895 - val_loss: 0.4968 - val_accuracy: 0.7579
Epoch 52/150
3/3 [==============================] - 0s 107ms/step - loss: 0.5852 - accuracy: 0.7368 - val_loss: 0.5418 - val_accuracy: 0.7474
Epoch 27/150
3/3 [==============================] - 0s 61ms/step - loss: 0.5223 - accuracy: 0.7579 - val_loss: 0.4953 - val_accuracy: 0.7579
Epoch 53/150
3/3 [==============================] - 0s 78ms/step - loss: 0.5677 - accuracy: 0.7316 - val_loss: 0.5376 - val_accuracy: 0.7579
Epoch 28/150
3/3 [==============================] - 0s 74ms/step - loss: 0.5119 - accuracy: 0.7684 - val_loss: 0.4936 - val_accuracy: 0.7579
Epoch 54/150
3/3 [==============================] - 0s 75ms/step - loss: 0.5985 - accuracy: 0.7316 - val_loss: 0.5337 - val_accuracy: 0.7579
Epoch 29/150
3/3 [==============================] - 0s 65ms/step - loss: 0.4662 - accuracy: 0.8026 - val_loss: 0.4924 - val_accuracy: 0.7579
Epoch 55/150
3/3 [==============================] - 0s 71ms/step - loss: 0.6229 - accuracy: 0.6921 - val_loss: 0.5298 - val_accuracy: 0.7579
Epoch 30/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4544 - accuracy: 0.8026 - val_loss: 0.4912 - val_accuracy: 0.7684
Epoch 56/150
3/3 [==============================] - 0s 69ms/step - loss: 0.5275 - accuracy: 0.7605 - val_loss: 0.5262 - val_accuracy: 0.7579
Epoch 31/150
3/3 [==============================] - 0s 68ms/step - loss: 0.5197 - accuracy: 0.7526 - val_loss: 0.4899 - val_accuracy: 0.7684
Epoch 57/150
3/3 [==============================] - 0s 69ms/step - loss: 0.5614 - accuracy: 0.7316 - val_loss: 0.5225 - val_accuracy: 0.7684
Epoch 32/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4719 - accuracy: 0.7842 - val_loss: 0.4885 - val_accuracy: 0.7684
Epoch 58/150
3/3 [==============================] - 0s 65ms/step - loss: 0.4940 - accuracy: 0.7868 - val_loss: 0.4874 - val_accuracy: 0.7684
3/3 [==============================] - 0s 65ms/step - loss: 0.5749 - accuracy: 0.7105 - val_loss: 0.5187 - val_accuracy: 0.7684
Epoch 33/150
Epoch 59/150
3/3 [==============================] - 0s 58ms/step - loss: 0.4907 - accuracy: 0.7658 - val_loss: 0.4863 - val_accuracy: 0.7684
Epoch 60/150
3/3 [==============================] - 0s 64ms/step - loss: 0.5942 - accuracy: 0.7237 - val_loss: 0.5150 - val_accuracy: 0.7684
Epoch 34/150
3/3 [==============================] - 0s 69ms/step - loss: 0.5123 - accuracy: 0.7868 - val_loss: 0.4853 - val_accuracy: 0.7684
Epoch 61/150
3/3 [==============================] - 0s 71ms/step - loss: 0.5580 - accuracy: 0.7211 - val_loss: 0.5114 - val_accuracy: 0.7684
Epoch 35/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4606 - accuracy: 0.7895 - val_loss: 0.4844 - val_accuracy: 0.7684
Epoch 62/150
3/3 [==============================] - 0s 69ms/step - loss: 0.5535 - accuracy: 0.7526 - val_loss: 0.5081 - val_accuracy: 0.7684
Epoch 36/150
3/3 [==============================] - 0s 59ms/step - loss: 0.5736 - accuracy: 0.7395 - val_loss: 0.5048 - val_accuracy: 0.7684
3/3 [==============================] - 0s 71ms/step - loss: 0.4850 - accuracy: 0.7658 - val_loss: 0.4836 - val_accuracy: 0.7684
Epoch 63/150
Epoch 37/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4739 - accuracy: 0.8026 - val_loss: 0.4827 - val_accuracy: 0.7684
Epoch 64/150
3/3 [==============================] - 0s 66ms/step - loss: 0.5528 - accuracy: 0.7500 - val_loss: 0.5016 - val_accuracy: 0.7684
Epoch 38/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4708 - accuracy: 0.7895 - val_loss: 0.4819 - val_accuracy: 0.7684
3/3 [==============================] - 0s 58ms/step - loss: 0.5668 - accuracy: 0.7316 - val_loss: 0.4983 - val_accuracy: 0.7684
Epoch 39/150
Epoch 65/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4728 - accuracy: 0.8026 - val_loss: 0.4808 - val_accuracy: 0.7684
Epoch 66/150
3/3 [==============================] - 0s 64ms/step - loss: 0.5418 - accuracy: 0.7342 - val_loss: 0.4950 - val_accuracy: 0.7895
Epoch 40/150
3/3 [==============================] - 0s 63ms/step - loss: 0.6147 - accuracy: 0.6947 - val_loss: 0.4913 - val_accuracy: 0.7895
Epoch 41/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4663 - accuracy: 0.8079 - val_loss: 0.4799 - val_accuracy: 0.7684
Epoch 67/150
3/3 [==============================] - 0s 73ms/step - loss: 0.5750 - accuracy: 0.7500 - val_loss: 0.4881 - val_accuracy: 0.7895
Epoch 42/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4624 - accuracy: 0.8079 - val_loss: 0.4792 - val_accuracy: 0.7684
Epoch 68/150
3/3 [==============================] - 0s 66ms/step - loss: 0.5644 - accuracy: 0.7500 - val_loss: 0.4850 - val_accuracy: 0.7895
3/3 [==============================] - 0s 73ms/step - loss: 0.5039 - accuracy: 0.7737 - val_loss: 0.4783 - val_accuracy: 0.7684
Epoch 69/150
Epoch 43/150
3/3 [==============================] - 0s 94ms/step - loss: 0.5179 - accuracy: 0.7763 - val_loss: 0.4777 - val_accuracy: 0.7684
Epoch 70/150
3/3 [==============================] - 0s 102ms/step - loss: 0.5014 - accuracy: 0.7684 - val_loss: 0.4818 - val_accuracy: 0.7895
1/3 [=========>....................] - ETA: 0s - loss: 0.5523 - accuracy: 0.7500Epoch 44/150
3/3 [==============================] - 0s 97ms/step - loss: 0.4866 - accuracy: 0.7737 - val_loss: 0.4772 - val_accuracy: 0.7684
Epoch 71/150
3/3 [==============================] - 0s 111ms/step - loss: 0.5344 - accuracy: 0.7789 - val_loss: 0.4785 - val_accuracy: 0.8000
Epoch 45/150
3/3 [==============================] - 0s 69ms/step - loss: 0.5675 - accuracy: 0.7500 - val_loss: 0.4753 - val_accuracy: 0.8000
Epoch 46/150
3/3 [==============================] - 0s 108ms/step - loss: 0.4835 - accuracy: 0.7895 - val_loss: 0.4767 - val_accuracy: 0.7684
Epoch 72/150
3/3 [==============================] - 0s 95ms/step - loss: 0.4922 - accuracy: 0.7868 - val_loss: 0.4759 - val_accuracy: 0.7684
Epoch 73/150
3/3 [==============================] - 0s 109ms/step - loss: 0.5605 - accuracy: 0.7447 - val_loss: 0.4724 - val_accuracy: 0.8000
Epoch 47/150
3/3 [==============================] - 0s 66ms/step - loss: 0.5210 - accuracy: 0.7500 - val_loss: 0.4695 - val_accuracy: 0.8000
Epoch 48/150
3/3 [==============================] - 0s 75ms/step - loss: 0.5262 - accuracy: 0.7526 - val_loss: 0.4753 - val_accuracy: 0.7684
Epoch 74/150
3/3 [==============================] - 0s 53ms/step - loss: 0.5027 - accuracy: 0.7500 - val_loss: 0.4666 - val_accuracy: 0.8000
Epoch 49/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4895 - accuracy: 0.7868 - val_loss: 0.4746 - val_accuracy: 0.7789
Epoch 75/150
3/3 [==============================] - 0s 58ms/step - loss: 0.5273 - accuracy: 0.7474 - val_loss: 0.4639 - val_accuracy: 0.8105
Epoch 50/150
3/3 [==============================] - 0s 66ms/step - loss: 0.5014 - accuracy: 0.7605 - val_loss: 0.4739 - val_accuracy: 0.7789
Epoch 76/150
3/3 [==============================] - 0s 65ms/step - loss: 0.4901 - accuracy: 0.7632 - val_loss: 0.4611 - val_accuracy: 0.8105
3/3 [==============================] - 0s 71ms/step - loss: 0.5144 - accuracy: 0.7868 - val_loss: 0.4733 - val_accuracy: 0.7789
Epoch 77/150
Epoch 51/150
3/3 [==============================] - 0s 71ms/step - loss: 0.5017 - accuracy: 0.7632 - val_loss: 0.4588 - val_accuracy: 0.8211
3/3 [==============================] - 0s 69ms/step - loss: 0.4746 - accuracy: 0.7868 - val_loss: 0.4726 - val_accuracy: 0.7789
Epoch 52/150
Epoch 78/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4586 - accuracy: 0.8184 - val_loss: 0.4723 - val_accuracy: 0.7789
3/3 [==============================] - 0s 64ms/step - loss: 0.5077 - accuracy: 0.7737 - val_loss: 0.4563 - val_accuracy: 0.8211
Epoch 53/150
Epoch 79/150
3/3 [==============================] - 0s 61ms/step - loss: 0.5365 - accuracy: 0.7500 - val_loss: 0.4536 - val_accuracy: 0.8211
Epoch 54/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4911 - accuracy: 0.8000 - val_loss: 0.4719 - val_accuracy: 0.7789
Epoch 80/150
3/3 [==============================] - 0s 60ms/step - loss: 0.5187 - accuracy: 0.7789 - val_loss: 0.4513 - val_accuracy: 0.8211
Epoch 55/150
3/3 [==============================] - 0s 65ms/step - loss: 0.4778 - accuracy: 0.7974 - val_loss: 0.4717 - val_accuracy: 0.7789
Epoch 81/150
3/3 [==============================] - 0s 61ms/step - loss: 0.5057 - accuracy: 0.7763 - val_loss: 0.4712 - val_accuracy: 0.7789
3/3 [==============================] - 0s 68ms/step - loss: 0.5046 - accuracy: 0.7605 - val_loss: 0.4489 - val_accuracy: 0.8316
Epoch 56/150
Epoch 82/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4861 - accuracy: 0.7684 - val_loss: 0.4706 - val_accuracy: 0.7789
Epoch 83/150
3/3 [==============================] - 0s 70ms/step - loss: 0.5603 - accuracy: 0.7447 - val_loss: 0.4466 - val_accuracy: 0.8316
Epoch 57/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4892 - accuracy: 0.7789 - val_loss: 0.4701 - val_accuracy: 0.7789
Epoch 84/150
3/3 [==============================] - 0s 69ms/step - loss: 0.5245 - accuracy: 0.7632 - val_loss: 0.4446 - val_accuracy: 0.8316
Epoch 58/150
3/3 [==============================] - 0s 67ms/step - loss: 0.5041 - accuracy: 0.7605 - val_loss: 0.4426 - val_accuracy: 0.8316
Epoch 59/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4960 - accuracy: 0.7816 - val_loss: 0.4696 - val_accuracy: 0.7789
Epoch 85/150
3/3 [==============================] - 0s 65ms/step - loss: 0.4461 - accuracy: 0.8053 - val_loss: 0.4693 - val_accuracy: 0.7789
Epoch 86/150
3/3 [==============================] - 0s 75ms/step - loss: 0.5252 - accuracy: 0.7789 - val_loss: 0.4407 - val_accuracy: 0.8316
Epoch 60/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4671 - accuracy: 0.7632 - val_loss: 0.4688 - val_accuracy: 0.7789
Epoch 87/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4658 - accuracy: 0.8000 - val_loss: 0.4388 - val_accuracy: 0.8316
Epoch 61/150
3/3 [==============================] - 0s 60ms/step - loss: 0.4811 - accuracy: 0.7789 - val_loss: 0.4684 - val_accuracy: 0.7789
3/3 [==============================] - 0s 60ms/step - loss: 0.4796 - accuracy: 0.7737 - val_loss: 0.4369 - val_accuracy: 0.8316
Epoch 88/150
Epoch 62/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4858 - accuracy: 0.7684 - val_loss: 0.4679 - val_accuracy: 0.7789
3/3 [==============================] - 0s 59ms/step - loss: 0.5691 - accuracy: 0.7526 - val_loss: 0.4348 - val_accuracy: 0.8316
Epoch 63/150
Epoch 89/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4649 - accuracy: 0.8053 - val_loss: 0.4328 - val_accuracy: 0.8316
Epoch 64/150
3/3 [==============================] - 0s 65ms/step - loss: 0.5184 - accuracy: 0.7868 - val_loss: 0.4676 - val_accuracy: 0.7789
Epoch 90/150
3/3 [==============================] - 0s 57ms/step - loss: 0.5113 - accuracy: 0.7868 - val_loss: 0.4309 - val_accuracy: 0.8316
Epoch 65/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4591 - accuracy: 0.7868 - val_loss: 0.4672 - val_accuracy: 0.7789
Epoch 91/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4761 - accuracy: 0.7632 - val_loss: 0.4289 - val_accuracy: 0.8316
Epoch 66/150
3/3 [==============================] - 0s 65ms/step - loss: 0.5251 - accuracy: 0.7763 - val_loss: 0.4669 - val_accuracy: 0.7789
Epoch 92/150
3/3 [==============================] - 0s 92ms/step - loss: 0.4820 - accuracy: 0.7553 - val_loss: 0.4667 - val_accuracy: 0.7789
3/3 [==============================] - 0s 99ms/step - loss: 0.5339 - accuracy: 0.7605 - val_loss: 0.4268 - val_accuracy: 0.8316
Epoch 67/150
Epoch 93/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4855 - accuracy: 0.7921 - val_loss: 0.4248 - val_accuracy: 0.8316
Epoch 68/150
3/3 [==============================] - 0s 115ms/step - loss: 0.4829 - accuracy: 0.7789 - val_loss: 0.4661 - val_accuracy: 0.7789
Epoch 94/150
3/3 [==============================] - 0s 103ms/step - loss: 0.5092 - accuracy: 0.7658 - val_loss: 0.4229 - val_accuracy: 0.8421
Epoch 69/150
3/3 [==============================] - 0s 86ms/step - loss: 0.4518 - accuracy: 0.7974 - val_loss: 0.4657 - val_accuracy: 0.7789
Epoch 95/150
3/3 [==============================] - 0s 84ms/step - loss: 0.5048 - accuracy: 0.7684 - val_loss: 0.4208 - val_accuracy: 0.8526
Epoch 70/150
3/3 [==============================] - 0s 84ms/step - loss: 0.4674 - accuracy: 0.7816 - val_loss: 0.4652 - val_accuracy: 0.7789
Epoch 96/150
3/3 [==============================] - 0s 86ms/step - loss: 0.5008 - accuracy: 0.7658 - val_loss: 0.4189 - val_accuracy: 0.8526
Epoch 71/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4569 - accuracy: 0.7868 - val_loss: 0.4650 - val_accuracy: 0.7789
Epoch 97/150
3/3 [==============================] - 0s 85ms/step - loss: 0.5267 - accuracy: 0.7632 - val_loss: 0.4170 - val_accuracy: 0.8526
Epoch 72/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4850 - accuracy: 0.7763 - val_loss: 0.4648 - val_accuracy: 0.7789
Epoch 98/150
3/3 [==============================] - 0s 75ms/step - loss: 0.5210 - accuracy: 0.7763 - val_loss: 0.4154 - val_accuracy: 0.8526
Epoch 73/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4374 - accuracy: 0.7947 - val_loss: 0.4646 - val_accuracy: 0.7789
Epoch 99/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4634 - accuracy: 0.7816 - val_loss: 0.4643 - val_accuracy: 0.7789
Epoch 100/150
3/3 [==============================] - 0s 103ms/step - loss: 0.5421 - accuracy: 0.7526 - val_loss: 0.4137 - val_accuracy: 0.8526
Epoch 74/150
3/3 [==============================] - 0s 80ms/step - loss: 0.4348 - accuracy: 0.8132 - val_loss: 0.4642 - val_accuracy: 0.7789
Epoch 101/150
3/3 [==============================] - 0s 95ms/step - loss: 0.4976 - accuracy: 0.7579 - val_loss: 0.4120 - val_accuracy: 0.8526
Epoch 75/150
3/3 [==============================] - 0s 92ms/step - loss: 0.4462 - accuracy: 0.7974 - val_loss: 0.4640 - val_accuracy: 0.7789
Epoch 102/150
3/3 [==============================] - 0s 104ms/step - loss: 0.4969 - accuracy: 0.7895 - val_loss: 0.4103 - val_accuracy: 0.8526
Epoch 76/150
3/3 [==============================] - 0s 92ms/step - loss: 0.4801 - accuracy: 0.8026 - val_loss: 0.4636 - val_accuracy: 0.7789
Epoch 103/150
3/3 [==============================] - 0s 109ms/step - loss: 0.4865 - accuracy: 0.7684 - val_loss: 0.4086 - val_accuracy: 0.8632
Epoch 77/150
3/3 [==============================] - 0s 96ms/step - loss: 0.4355 - accuracy: 0.8132 - val_loss: 0.4631 - val_accuracy: 0.7789
Epoch 104/150
3/3 [==============================] - 0s 80ms/step - loss: 0.5131 - accuracy: 0.7842 - val_loss: 0.4070 - val_accuracy: 0.8632
Epoch 78/150
3/3 [==============================] - 0s 87ms/step - loss: 0.4753 - accuracy: 0.7974 - val_loss: 0.4627 - val_accuracy: 0.7789
Epoch 105/150
3/3 [==============================] - 0s 81ms/step - loss: 0.5189 - accuracy: 0.7763 - val_loss: 0.4055 - val_accuracy: 0.8632
Epoch 79/150
3/3 [==============================] - 0s 61ms/step - loss: 0.4716 - accuracy: 0.7974 - val_loss: 0.4623 - val_accuracy: 0.7789
Epoch 106/150
3/3 [==============================] - 0s 72ms/step - loss: 0.5237 - accuracy: 0.7553 - val_loss: 0.4042 - val_accuracy: 0.8632
Epoch 80/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4814 - accuracy: 0.7816 - val_loss: 0.4622 - val_accuracy: 0.7789
Epoch 107/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4742 - accuracy: 0.7763 - val_loss: 0.4027 - val_accuracy: 0.8632
Epoch 81/150
3/3 [==============================] - 0s 74ms/step - loss: 0.5184 - accuracy: 0.7789 - val_loss: 0.4011 - val_accuracy: 0.8737
3/3 [==============================] - 0s 118ms/step - loss: 0.4926 - accuracy: 0.8000 - val_loss: 0.4620 - val_accuracy: 0.7789
Epoch 82/150
Epoch 108/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4900 - accuracy: 0.7684 - val_loss: 0.3998 - val_accuracy: 0.8737
Epoch 83/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4423 - accuracy: 0.8053 - val_loss: 0.4621 - val_accuracy: 0.7789
1/3 [=========>....................] - ETA: 0s - loss: 0.4786 - accuracy: 0.7969Epoch 109/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4950 - accuracy: 0.7579 - val_loss: 0.3985 - val_accuracy: 0.8737
Epoch 84/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4635 - accuracy: 0.7974 - val_loss: 0.4621 - val_accuracy: 0.7789
Epoch 110/150
3/3 [==============================] - 0s 88ms/step - loss: 0.4919 - accuracy: 0.7763 - val_loss: 0.3971 - val_accuracy: 0.8737
Epoch 85/150
3/3 [==============================] - 0s 84ms/step - loss: 0.4683 - accuracy: 0.7921 - val_loss: 0.4622 - val_accuracy: 0.7789
Epoch 111/150
3/3 [==============================] - 0s 73ms/step - loss: 0.5022 - accuracy: 0.7711 - val_loss: 0.3960 - val_accuracy: 0.8632
Epoch 86/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4786 - accuracy: 0.8105 - val_loss: 0.4623 - val_accuracy: 0.7789
Epoch 112/150
3/3 [==============================] - 0s 78ms/step - loss: 0.5457 - accuracy: 0.7553 - val_loss: 0.3948 - val_accuracy: 0.8632
Epoch 87/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4698 - accuracy: 0.7842 - val_loss: 0.4623 - val_accuracy: 0.7895
Epoch 113/150
3/3 [==============================] - 0s 77ms/step - loss: 0.5318 - accuracy: 0.7500 - val_loss: 0.3935 - val_accuracy: 0.8737
Epoch 88/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4674 - accuracy: 0.7921 - val_loss: 0.4622 - val_accuracy: 0.7895
Epoch 114/150
3/3 [==============================] - 0s 94ms/step - loss: 0.5486 - accuracy: 0.7447 - val_loss: 0.3925 - val_accuracy: 0.8737
Epoch 89/150
3/3 [==============================] - 0s 88ms/step - loss: 0.4363 - accuracy: 0.8079 - val_loss: 0.4623 - val_accuracy: 0.7895
Epoch 115/150
3/3 [==============================] - 0s 86ms/step - loss: 0.4967 - accuracy: 0.7868 - val_loss: 0.3915 - val_accuracy: 0.8737
Epoch 90/150
3/3 [==============================] - 0s 99ms/step - loss: 0.4384 - accuracy: 0.8211 - val_loss: 0.4624 - val_accuracy: 0.7895
Epoch 116/150
3/3 [==============================] - 0s 97ms/step - loss: 0.4912 - accuracy: 0.7658 - val_loss: 0.3904 - val_accuracy: 0.8737
Epoch 91/150
3/3 [==============================] - 0s 101ms/step - loss: 0.4555 - accuracy: 0.8000 - val_loss: 0.4624 - val_accuracy: 0.7895
Epoch 117/150
3/3 [==============================] - 0s 85ms/step - loss: 0.4936 - accuracy: 0.7868 - val_loss: 0.3895 - val_accuracy: 0.8737
Epoch 92/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4244 - accuracy: 0.8158 - val_loss: 0.4625 - val_accuracy: 0.7895
Epoch 118/150
3/3 [==============================] - 0s 88ms/step - loss: 0.4929 - accuracy: 0.7842 - val_loss: 0.3886 - val_accuracy: 0.8737
Epoch 93/150
3/3 [==============================] - 0s 88ms/step - loss: 0.4501 - accuracy: 0.7895 - val_loss: 0.4627 - val_accuracy: 0.7895
Epoch 119/150
3/3 [==============================] - 0s 101ms/step - loss: 0.4799 - accuracy: 0.7816 - val_loss: 0.3876 - val_accuracy: 0.8737
Epoch 94/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4595 - accuracy: 0.8000 - val_loss: 0.4627 - val_accuracy: 0.7895
1/3 [=========>....................] - ETA: 0s - loss: 0.4816 - accuracy: 0.7656Epoch 120/150
3/3 [==============================] - 0s 111ms/step - loss: 0.5312 - accuracy: 0.7632 - val_loss: 0.3866 - val_accuracy: 0.8737
Epoch 95/150
3/3 [==============================] - 0s 107ms/step - loss: 0.5017 - accuracy: 0.7868 - val_loss: 0.4626 - val_accuracy: 0.7895
Epoch 121/150
3/3 [==============================] - 0s 80ms/step - loss: 0.4660 - accuracy: 0.7842 - val_loss: 0.3858 - val_accuracy: 0.8737
Epoch 96/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4573 - accuracy: 0.7868 - val_loss: 0.4626 - val_accuracy: 0.7895
Epoch 122/150
3/3 [==============================] - 0s 93ms/step - loss: 0.4738 - accuracy: 0.7921 - val_loss: 0.3848 - val_accuracy: 0.8737
Epoch 97/150
3/3 [==============================] - 0s 102ms/step - loss: 0.4489 - accuracy: 0.8263 - val_loss: 0.4622 - val_accuracy: 0.7895
Epoch 123/150
3/3 [==============================] - 0s 103ms/step - loss: 0.4666 - accuracy: 0.7895 - val_loss: 0.3842 - val_accuracy: 0.8737
Epoch 98/150
3/3 [==============================] - 0s 102ms/step - loss: 0.4593 - accuracy: 0.8053 - val_loss: 0.4622 - val_accuracy: 0.7895
Epoch 124/150
3/3 [==============================] - 0s 94ms/step - loss: 0.4531 - accuracy: 0.8026 - val_loss: 0.3834 - val_accuracy: 0.8737
Epoch 99/150
3/3 [==============================] - 0s 102ms/step - loss: 0.4447 - accuracy: 0.8053 - val_loss: 0.4621 - val_accuracy: 0.7895
Epoch 125/150
3/3 [==============================] - 0s 106ms/step - loss: 0.4741 - accuracy: 0.7921 - val_loss: 0.3824 - val_accuracy: 0.8737
Epoch 100/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4718 - accuracy: 0.8053 - val_loss: 0.4622 - val_accuracy: 0.7895
Epoch 126/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4560 - accuracy: 0.7974 - val_loss: 0.3816 - val_accuracy: 0.8737
Epoch 101/150
3/3 [==============================] - 0s 86ms/step - loss: 0.4578 - accuracy: 0.7921 - val_loss: 0.4622 - val_accuracy: 0.7895
Epoch 127/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4925 - accuracy: 0.8026 - val_loss: 0.3809 - val_accuracy: 0.8737
Epoch 102/150
3/3 [==============================] - 0s 85ms/step - loss: 0.4440 - accuracy: 0.8026 - val_loss: 0.4620 - val_accuracy: 0.7895
Epoch 128/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4417 - accuracy: 0.8395 - val_loss: 0.4619 - val_accuracy: 0.7895
3/3 [==============================] - 0s 104ms/step - loss: 0.4676 - accuracy: 0.7895 - val_loss: 0.3802 - val_accuracy: 0.8737
Epoch 103/150
Epoch 129/150
3/3 [==============================] - 0s 81ms/step - loss: 0.5097 - accuracy: 0.7789 - val_loss: 0.3794 - val_accuracy: 0.8737
Epoch 104/150
3/3 [==============================] - 0s 111ms/step - loss: 0.4812 - accuracy: 0.7868 - val_loss: 0.4619 - val_accuracy: 0.7895
Epoch 130/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4586 - accuracy: 0.8000 - val_loss: 0.3786 - val_accuracy: 0.8737
Epoch 105/150
3/3 [==============================] - 0s 86ms/step - loss: 0.4612 - accuracy: 0.7947 - val_loss: 0.4617 - val_accuracy: 0.7895
Epoch 131/150
3/3 [==============================] - 0s 90ms/step - loss: 0.4610 - accuracy: 0.7868 - val_loss: 0.3776 - val_accuracy: 0.8737
Epoch 106/150
3/3 [==============================] - 0s 91ms/step - loss: 0.4511 - accuracy: 0.8132 - val_loss: 0.4617 - val_accuracy: 0.7895
Epoch 132/150
3/3 [==============================] - 0s 99ms/step - loss: 0.4331 - accuracy: 0.8000 - val_loss: 0.3769 - val_accuracy: 0.8737
Epoch 107/150
3/3 [==============================] - 0s 98ms/step - loss: 0.4522 - accuracy: 0.7974 - val_loss: 0.4617 - val_accuracy: 0.7895
Epoch 133/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4499 - accuracy: 0.8289 - val_loss: 0.3762 - val_accuracy: 0.8842
Epoch 108/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4276 - accuracy: 0.8132 - val_loss: 0.4618 - val_accuracy: 0.7895
Epoch 134/150
3/3 [==============================] - 0s 87ms/step - loss: 0.5021 - accuracy: 0.7711 - val_loss: 0.3754 - val_accuracy: 0.8737
Epoch 109/150
3/3 [==============================] - 0s 84ms/step - loss: 0.4441 - accuracy: 0.8079 - val_loss: 0.4619 - val_accuracy: 0.7895
Epoch 135/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4858 - accuracy: 0.7684 - val_loss: 0.3745 - val_accuracy: 0.8737
Epoch 110/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4497 - accuracy: 0.8211 - val_loss: 0.4620 - val_accuracy: 0.7895
Epoch 136/150
3/3 [==============================] - 0s 74ms/step - loss: 0.5580 - accuracy: 0.7763 - val_loss: 0.3739 - val_accuracy: 0.8737
Epoch 111/150
3/3 [==============================] - 0s 100ms/step - loss: 0.4662 - accuracy: 0.8053 - val_loss: 0.4623 - val_accuracy: 0.7895
Epoch 137/150
3/3 [==============================] - 0s 101ms/step - loss: 0.4637 - accuracy: 0.7842 - val_loss: 0.3731 - val_accuracy: 0.8737
Epoch 112/150
3/3 [==============================] - 0s 107ms/step - loss: 0.4402 - accuracy: 0.8211 - val_loss: 0.4626 - val_accuracy: 0.7895
Epoch 138/150
3/3 [==============================] - 0s 101ms/step - loss: 0.4730 - accuracy: 0.8105 - val_loss: 0.3723 - val_accuracy: 0.8737
Epoch 113/150
3/3 [==============================] - 0s 86ms/step - loss: 0.4482 - accuracy: 0.8263 - val_loss: 0.4627 - val_accuracy: 0.7895
3/3 [==============================] - 0s 60ms/step - loss: 0.4769 - accuracy: 0.7947 - val_loss: 0.3719 - val_accuracy: 0.8842
Epoch 114/150
Epoch 139/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4321 - accuracy: 0.8132 - val_loss: 0.4629 - val_accuracy: 0.7789
3/3 [==============================] - 0s 76ms/step - loss: 0.4637 - accuracy: 0.7789 - val_loss: 0.3711 - val_accuracy: 0.8842
Epoch 115/150
Epoch 140/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4179 - accuracy: 0.8237 - val_loss: 0.4631 - val_accuracy: 0.7789
Epoch 141/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4923 - accuracy: 0.7895 - val_loss: 0.3704 - val_accuracy: 0.8842
Epoch 116/150
3/3 [==============================] - 0s 50ms/step - loss: 0.4365 - accuracy: 0.8053 - val_loss: 0.4632 - val_accuracy: 0.7789
Epoch 142/150
3/3 [==============================] - 0s 80ms/step - loss: 0.4474 - accuracy: 0.7868 - val_loss: 0.3698 - val_accuracy: 0.8842
Epoch 117/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4629 - accuracy: 0.8079 - val_loss: 0.4635 - val_accuracy: 0.7789
Epoch 143/150
3/3 [==============================] - 0s 70ms/step - loss: 0.4469 - accuracy: 0.7974 - val_loss: 0.3693 - val_accuracy: 0.8842
Epoch 118/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4354 - accuracy: 0.8237 - val_loss: 0.4636 - val_accuracy: 0.7789
Epoch 144/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4739 - accuracy: 0.7921 - val_loss: 0.3688 - val_accuracy: 0.8842
Epoch 119/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4490 - accuracy: 0.8105 - val_loss: 0.4638 - val_accuracy: 0.7789
Epoch 145/150
3/3 [==============================] - 0s 84ms/step - loss: 0.5217 - accuracy: 0.7737 - val_loss: 0.3683 - val_accuracy: 0.8842
Epoch 120/150
3/3 [==============================] - 0s 88ms/step - loss: 0.4640 - accuracy: 0.7789 - val_loss: 0.4636 - val_accuracy: 0.7789
Epoch 146/150
3/3 [==============================] - 0s 91ms/step - loss: 0.4747 - accuracy: 0.8053 - val_loss: 0.3678 - val_accuracy: 0.8842
Epoch 121/150
3/3 [==============================] - 0s 83ms/step - loss: 0.4538 - accuracy: 0.8079 - val_loss: 0.4636 - val_accuracy: 0.7789
Epoch 147/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4506 - accuracy: 0.8026 - val_loss: 0.3672 - val_accuracy: 0.8842
Epoch 122/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4531 - accuracy: 0.8026 - val_loss: 0.4637 - val_accuracy: 0.7789
Epoch 148/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4532 - accuracy: 0.8105 - val_loss: 0.3667 - val_accuracy: 0.8842
Epoch 123/150
3/3 [==============================] - 0s 83ms/step - loss: 0.4708 - accuracy: 0.8079 - val_loss: 0.4635 - val_accuracy: 0.7789
Epoch 149/150
3/3 [==============================] - 0s 92ms/step - loss: 0.4733 - accuracy: 0.7895 - val_loss: 0.3663 - val_accuracy: 0.8842
Epoch 124/150
3/3 [==============================] - 0s 106ms/step - loss: 0.4264 - accuracy: 0.8158 - val_loss: 0.4634 - val_accuracy: 0.7789
Epoch 150/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4447 - accuracy: 0.8026 - val_loss: 0.3659 - val_accuracy: 0.8842
Epoch 125/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4331 - accuracy: 0.8263 - val_loss: 0.4635 - val_accuracy: 0.7789
3/3 [==============================] - 0s 72ms/step - loss: 0.4276 - accuracy: 0.8211 - val_loss: 0.3656 - val_accuracy: 0.8842
Epoch 126/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4713 - accuracy: 0.7974 - val_loss: 0.3651 - val_accuracy: 0.8842
Epoch 127/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4339 - accuracy: 0.7895 - val_loss: 0.3645 - val_accuracy: 0.8842
Epoch 128/150
3/3 [==============================] - 0s 37ms/step - loss: 0.4580 - accuracy: 0.7763 - val_loss: 0.3638 - val_accuracy: 0.8842
Epoch 129/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4800 - accuracy: 0.7737 - val_loss: 0.3635 - val_accuracy: 0.8842
Epoch 130/150
3/3 [==============================] - 0s 42ms/step - loss: 0.4938 - accuracy: 0.7868 - val_loss: 0.3630 - val_accuracy: 0.8842
Epoch 131/150
3/3 [==============================] - 0s 37ms/step - loss: 0.4646 - accuracy: 0.7974 - val_loss: 0.3623 - val_accuracy: 0.8842
Epoch 132/150
3/3 [==============================] - 0s 30ms/step - loss: 0.4675 - accuracy: 0.7816 - val_loss: 0.3617 - val_accuracy: 0.8842
Epoch 133/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4704 - accuracy: 0.7842 - val_loss: 0.3612 - val_accuracy: 0.8842
Epoch 134/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4509 - accuracy: 0.7947 - val_loss: 0.3609 - val_accuracy: 0.8842
Epoch 135/150
3/3 [==============================] - 0s 37ms/step - loss: 0.4543 - accuracy: 0.8079 - val_loss: 0.3604 - val_accuracy: 0.8842
Epoch 136/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4956 - accuracy: 0.7789 - val_loss: 0.3599 - val_accuracy: 0.8842
Epoch 137/150
3/3 [==============================] - 0s 46ms/step - loss: 0.5031 - accuracy: 0.7868 - val_loss: 0.3595 - val_accuracy: 0.8842
Epoch 138/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4985 - accuracy: 0.7816 - val_loss: 0.3591 - val_accuracy: 0.8842
Epoch 139/150
3/3 [==============================] - 0s 44ms/step - loss: 0.5045 - accuracy: 0.7842 - val_loss: 0.3587 - val_accuracy: 0.8737
Epoch 140/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4496 - accuracy: 0.8132 - val_loss: 0.3583 - val_accuracy: 0.8737
Epoch 141/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4909 - accuracy: 0.7763 - val_loss: 0.3579 - val_accuracy: 0.8737
Epoch 142/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4471 - accuracy: 0.8132 - val_loss: 0.3577 - val_accuracy: 0.8737
Epoch 143/150
3/3 [==============================] - 0s 36ms/step - loss: 0.4822 - accuracy: 0.8000 - val_loss: 0.3572 - val_accuracy: 0.8737
Epoch 144/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4754 - accuracy: 0.7711 - val_loss: 0.3570 - val_accuracy: 0.8737
Epoch 145/150
3/3 [==============================] - 0s 37ms/step - loss: 0.4515 - accuracy: 0.8053 - val_loss: 0.3568 - val_accuracy: 0.8737
Epoch 146/150
3/3 [==============================] - 0s 33ms/step - loss: 0.4754 - accuracy: 0.7868 - val_loss: 0.3564 - val_accuracy: 0.8737
Epoch 147/150
3/3 [==============================] - 0s 33ms/step - loss: 0.4615 - accuracy: 0.7921 - val_loss: 0.3560 - val_accuracy: 0.8737
Epoch 148/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4378 - accuracy: 0.8026 - val_loss: 0.3556 - val_accuracy: 0.8737
Epoch 149/150
3/3 [==============================] - 0s 41ms/step - loss: 0.5133 - accuracy: 0.7658 - val_loss: 0.3555 - val_accuracy: 0.8737
Epoch 150/150
3/3 [==============================] - 0s 36ms/step - loss: 0.4748 - accuracy: 0.7763 - val_loss: 0.3552 - val_accuracy: 0.8737
2/2 [==============================] - 0s 16ms/step - loss: 0.4212 - accuracy: 0.8228
Epoch 1/150
3/3 [==============================] - 2s 239ms/step - loss: 0.8223 - accuracy: 0.5356 - val_loss: 0.6670 - val_accuracy: 0.6421
Epoch 2/150
3/3 [==============================] - 0s 42ms/step - loss: 0.7731 - accuracy: 0.5435 - val_loss: 0.6532 - val_accuracy: 0.6526
Epoch 3/150
3/3 [==============================] - 0s 40ms/step - loss: 0.7490 - accuracy: 0.5963 - val_loss: 0.6418 - val_accuracy: 0.6632
Epoch 4/150
3/3 [==============================] - 0s 39ms/step - loss: 0.7250 - accuracy: 0.6306 - val_loss: 0.6324 - val_accuracy: 0.6526
Epoch 5/150
3/3 [==============================] - 0s 36ms/step - loss: 0.6784 - accuracy: 0.6332 - val_loss: 0.6237 - val_accuracy: 0.6526
Epoch 6/150
3/3 [==============================] - 0s 37ms/step - loss: 0.6455 - accuracy: 0.6834 - val_loss: 0.6157 - val_accuracy: 0.6632
Epoch 7/150
3/3 [==============================] - 0s 45ms/step - loss: 0.5933 - accuracy: 0.6992 - val_loss: 0.6083 - val_accuracy: 0.7053
Epoch 8/150
3/3 [==============================] - 0s 46ms/step - loss: 0.6366 - accuracy: 0.6675 - val_loss: 0.6014 - val_accuracy: 0.7053
Epoch 9/150
3/3 [==============================] - 0s 44ms/step - loss: 0.6127 - accuracy: 0.6939 - val_loss: 0.5952 - val_accuracy: 0.7053
Epoch 10/150
3/3 [==============================] - 0s 41ms/step - loss: 0.5907 - accuracy: 0.7098 - val_loss: 0.5898 - val_accuracy: 0.6842
Epoch 11/150
3/3 [==============================] - 0s 43ms/step - loss: 0.5871 - accuracy: 0.7071 - val_loss: 0.5843 - val_accuracy: 0.6842
Epoch 12/150
3/3 [==============================] - 0s 40ms/step - loss: 0.5410 - accuracy: 0.7361 - val_loss: 0.5788 - val_accuracy: 0.6842
Epoch 13/150
3/3 [==============================] - 0s 39ms/step - loss: 0.5368 - accuracy: 0.7282 - val_loss: 0.5740 - val_accuracy: 0.6947
Epoch 14/150
3/3 [==============================] - 0s 49ms/step - loss: 0.5118 - accuracy: 0.7467 - val_loss: 0.5697 - val_accuracy: 0.6947
Epoch 15/150
3/3 [==============================] - 0s 39ms/step - loss: 0.5228 - accuracy: 0.7361 - val_loss: 0.5654 - val_accuracy: 0.6947
Epoch 16/150
3/3 [==============================] - 0s 40ms/step - loss: 0.5409 - accuracy: 0.7335 - val_loss: 0.5607 - val_accuracy: 0.6947
Epoch 17/150
3/3 [==============================] - 0s 38ms/step - loss: 0.5666 - accuracy: 0.7256 - val_loss: 0.5563 - val_accuracy: 0.7053
Epoch 18/150
3/3 [==============================] - 0s 39ms/step - loss: 0.5319 - accuracy: 0.7493 - val_loss: 0.5520 - val_accuracy: 0.7158
Epoch 19/150
3/3 [==============================] - 0s 44ms/step - loss: 0.5042 - accuracy: 0.7599 - val_loss: 0.5481 - val_accuracy: 0.7158
Epoch 20/150
3/3 [==============================] - 0s 37ms/step - loss: 0.4800 - accuracy: 0.7731 - val_loss: 0.5443 - val_accuracy: 0.7368
Epoch 21/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4645 - accuracy: 0.7916 - val_loss: 0.5407 - val_accuracy: 0.7474
Epoch 22/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4721 - accuracy: 0.7731 - val_loss: 0.5370 - val_accuracy: 0.7474
Epoch 23/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4697 - accuracy: 0.7810 - val_loss: 0.5333 - val_accuracy: 0.7579
Epoch 24/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4710 - accuracy: 0.7916 - val_loss: 0.5300 - val_accuracy: 0.7579
Epoch 25/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4363 - accuracy: 0.7836 - val_loss: 0.5266 - val_accuracy: 0.7579
Epoch 26/150
3/3 [==============================] - 0s 50ms/step - loss: 0.4581 - accuracy: 0.7863 - val_loss: 0.5234 - val_accuracy: 0.7684
Epoch 27/150
3/3 [==============================] - 0s 57ms/step - loss: 0.4878 - accuracy: 0.7863 - val_loss: 0.5206 - val_accuracy: 0.7684
Epoch 28/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4553 - accuracy: 0.7836 - val_loss: 0.5177 - val_accuracy: 0.7684
Epoch 29/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4489 - accuracy: 0.8074 - val_loss: 0.5153 - val_accuracy: 0.7579
Epoch 30/150
3/3 [==============================] - 0s 49ms/step - loss: 0.4852 - accuracy: 0.7731 - val_loss: 0.5130 - val_accuracy: 0.7684
Epoch 31/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4660 - accuracy: 0.7704 - val_loss: 0.5108 - val_accuracy: 0.7684
Epoch 32/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4463 - accuracy: 0.7810 - val_loss: 0.5083 - val_accuracy: 0.7789
Epoch 33/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4513 - accuracy: 0.7889 - val_loss: 0.5060 - val_accuracy: 0.7895
Epoch 34/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4615 - accuracy: 0.7968 - val_loss: 0.5038 - val_accuracy: 0.8000
Epoch 35/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4646 - accuracy: 0.7942 - val_loss: 0.5015 - val_accuracy: 0.8000
Epoch 36/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4111 - accuracy: 0.8311 - val_loss: 0.4995 - val_accuracy: 0.8000
Epoch 37/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4371 - accuracy: 0.8179 - val_loss: 0.4973 - val_accuracy: 0.8000
Epoch 38/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4823 - accuracy: 0.7942 - val_loss: 0.4952 - val_accuracy: 0.7895
Epoch 39/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4582 - accuracy: 0.8153 - val_loss: 0.4933 - val_accuracy: 0.7895
Epoch 40/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4640 - accuracy: 0.7889 - val_loss: 0.4914 - val_accuracy: 0.7895
Epoch 41/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4312 - accuracy: 0.8179 - val_loss: 0.4901 - val_accuracy: 0.7895
Epoch 42/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4420 - accuracy: 0.7942 - val_loss: 0.4884 - val_accuracy: 0.8000
Epoch 43/150
3/3 [==============================] - 0s 58ms/step - loss: 0.4258 - accuracy: 0.8179 - val_loss: 0.4866 - val_accuracy: 0.8000
Epoch 44/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4445 - accuracy: 0.8127 - val_loss: 0.4852 - val_accuracy: 0.8105
Epoch 45/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4380 - accuracy: 0.8259 - val_loss: 0.4836 - val_accuracy: 0.8105
Epoch 46/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4544 - accuracy: 0.7968 - val_loss: 0.4822 - val_accuracy: 0.8105
Epoch 47/150
3/3 [==============================] - 0s 52ms/step - loss: 0.3926 - accuracy: 0.8179 - val_loss: 0.4809 - val_accuracy: 0.8105
Epoch 48/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4260 - accuracy: 0.8074 - val_loss: 0.4796 - val_accuracy: 0.8105
Epoch 49/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4058 - accuracy: 0.8338 - val_loss: 0.4782 - val_accuracy: 0.8105
Epoch 50/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4271 - accuracy: 0.8127 - val_loss: 0.4768 - val_accuracy: 0.8105
Epoch 51/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4409 - accuracy: 0.8100 - val_loss: 0.4754 - val_accuracy: 0.8211
Epoch 52/150
3/3 [==============================] - 0s 49ms/step - loss: 0.4049 - accuracy: 0.8153 - val_loss: 0.4741 - val_accuracy: 0.8211
Epoch 53/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4108 - accuracy: 0.8232 - val_loss: 0.4729 - val_accuracy: 0.8211
Epoch 54/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4018 - accuracy: 0.8259 - val_loss: 0.4716 - val_accuracy: 0.8105
Epoch 55/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4582 - accuracy: 0.8047 - val_loss: 0.4707 - val_accuracy: 0.8105
Epoch 56/150
3/3 [==============================] - 0s 51ms/step - loss: 0.3807 - accuracy: 0.8311 - val_loss: 0.4699 - val_accuracy: 0.8105
Epoch 57/150
3/3 [==============================] - 0s 50ms/step - loss: 0.3916 - accuracy: 0.8259 - val_loss: 0.4690 - val_accuracy: 0.8105
Epoch 58/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4269 - accuracy: 0.8074 - val_loss: 0.4680 - val_accuracy: 0.8105
Epoch 59/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4141 - accuracy: 0.8285 - val_loss: 0.4674 - val_accuracy: 0.8105
Epoch 60/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4121 - accuracy: 0.8100 - val_loss: 0.4670 - val_accuracy: 0.8105
Epoch 61/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4216 - accuracy: 0.8127 - val_loss: 0.4665 - val_accuracy: 0.8105
Epoch 62/150
3/3 [==============================] - 0s 61ms/step - loss: 0.3917 - accuracy: 0.8259 - val_loss: 0.4657 - val_accuracy: 0.8105
Epoch 63/150
3/3 [==============================] - 0s 74ms/step - loss: 0.3944 - accuracy: 0.8549 - val_loss: 0.4649 - val_accuracy: 0.8105
Epoch 64/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4036 - accuracy: 0.8259 - val_loss: 0.4643 - val_accuracy: 0.8105
Epoch 65/150
3/3 [==============================] - 0s 73ms/step - loss: 0.3969 - accuracy: 0.8391 - val_loss: 0.4638 - val_accuracy: 0.8105
Epoch 66/150
2/2 [==============================] - 0s 16ms/step - loss: 0.3857 - accuracy: 0.8354
3/3 [==============================] - 0s 77ms/step - loss: 0.3823 - accuracy: 0.8259 - val_loss: 0.4633 - val_accuracy: 0.8105
Epoch 67/150
3/3 [==============================] - 0s 83ms/step - loss: 0.3854 - accuracy: 0.8391 - val_loss: 0.4629 - val_accuracy: 0.8105
Epoch 68/150
3/3 [==============================] - 0s 84ms/step - loss: 0.4371 - accuracy: 0.8127 - val_loss: 0.4626 - val_accuracy: 0.8105
Epoch 69/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4030 - accuracy: 0.8259 - val_loss: 0.4622 - val_accuracy: 0.8105
Epoch 70/150
1/3 [=========>....................] - ETA: 0s - loss: 0.3719 - accuracy: 0.8281Epoch 1/150
3/3 [==============================] - 0s 118ms/step - loss: 0.3910 - accuracy: 0.8153 - val_loss: 0.4621 - val_accuracy: 0.8000
Epoch 71/150
3/3 [==============================] - 0s 88ms/step - loss: 0.4342 - accuracy: 0.8259 - val_loss: 0.4619 - val_accuracy: 0.8000
Epoch 72/150
3/3 [==============================] - 0s 109ms/step - loss: 0.3935 - accuracy: 0.8259 - val_loss: 0.4616 - val_accuracy: 0.8000
Epoch 73/150
3/3 [==============================] - 0s 69ms/step - loss: 0.3602 - accuracy: 0.8443 - val_loss: 0.4613 - val_accuracy: 0.8000
Epoch 74/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4014 - accuracy: 0.8417 - val_loss: 0.4611 - val_accuracy: 0.8000
Epoch 75/150
3/3 [==============================] - 0s 46ms/step - loss: 0.3574 - accuracy: 0.8364 - val_loss: 0.4609 - val_accuracy: 0.8000
Epoch 76/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4002 - accuracy: 0.8074 - val_loss: 0.4610 - val_accuracy: 0.8000
Epoch 77/150
3/3 [==============================] - 0s 70ms/step - loss: 0.3958 - accuracy: 0.8259 - val_loss: 0.4609 - val_accuracy: 0.8000
Epoch 78/150
3/3 [==============================] - 0s 66ms/step - loss: 0.3846 - accuracy: 0.8417 - val_loss: 0.4611 - val_accuracy: 0.8000
Epoch 79/150
3/3 [==============================] - 0s 74ms/step - loss: 0.3779 - accuracy: 0.8338 - val_loss: 0.4615 - val_accuracy: 0.8000
Epoch 80/150
3/3 [==============================] - 0s 76ms/step - loss: 0.3986 - accuracy: 0.8259 - val_loss: 0.4619 - val_accuracy: 0.8000
Epoch 81/150
3/3 [==============================] - 0s 95ms/step - loss: 0.3816 - accuracy: 0.8522 - val_loss: 0.4623 - val_accuracy: 0.8000
Epoch 82/150
3/3 [==============================] - 0s 88ms/step - loss: 0.3833 - accuracy: 0.8364 - val_loss: 0.4628 - val_accuracy: 0.8000
Epoch 83/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4038 - accuracy: 0.8364 - val_loss: 0.4630 - val_accuracy: 0.8000
Epoch 84/150
3/3 [==============================] - 0s 72ms/step - loss: 0.3882 - accuracy: 0.8232 - val_loss: 0.4633 - val_accuracy: 0.8000
Epoch 85/150
3/3 [==============================] - 0s 64ms/step - loss: 0.3619 - accuracy: 0.8443 - val_loss: 0.4634 - val_accuracy: 0.8000
Epoch 86/150
3/3 [==============================] - 0s 61ms/step - loss: 0.4075 - accuracy: 0.8311 - val_loss: 0.4635 - val_accuracy: 0.8000
Epoch 87/150
3/3 [==============================] - 0s 60ms/step - loss: 0.3942 - accuracy: 0.8338 - val_loss: 0.4633 - val_accuracy: 0.8000
Epoch 88/150
3/3 [==============================] - 0s 64ms/step - loss: 0.3910 - accuracy: 0.8311 - val_loss: 0.4636 - val_accuracy: 0.8000
Epoch 89/150
3/3 [==============================] - 0s 62ms/step - loss: 0.3809 - accuracy: 0.8470 - val_loss: 0.4639 - val_accuracy: 0.8000
Epoch 90/150
3/3 [==============================] - 0s 59ms/step - loss: 0.3680 - accuracy: 0.8470 - val_loss: 0.4639 - val_accuracy: 0.8000
Epoch 91/150
3/3 [==============================] - 0s 65ms/step - loss: 0.3694 - accuracy: 0.8522 - val_loss: 0.4639 - val_accuracy: 0.8000
Epoch 92/150
3/3 [==============================] - 0s 64ms/step - loss: 0.3924 - accuracy: 0.8602 - val_loss: 0.4637 - val_accuracy: 0.8000
Epoch 93/150
3/3 [==============================] - 0s 65ms/step - loss: 0.3608 - accuracy: 0.8522 - val_loss: 0.4638 - val_accuracy: 0.8000
Epoch 94/150
3/3 [==============================] - 0s 68ms/step - loss: 0.3650 - accuracy: 0.8496 - val_loss: 0.4640 - val_accuracy: 0.8000
Epoch 95/150
3/3 [==============================] - 0s 59ms/step - loss: 0.3784 - accuracy: 0.8707 - val_loss: 0.4642 - val_accuracy: 0.8000
Epoch 96/150
3/3 [==============================] - 0s 70ms/step - loss: 0.3874 - accuracy: 0.8470 - val_loss: 0.4643 - val_accuracy: 0.8000
Epoch 97/150
3/3 [==============================] - 0s 58ms/step - loss: 0.3720 - accuracy: 0.8628 - val_loss: 0.4648 - val_accuracy: 0.8000
Epoch 98/150
3/3 [==============================] - 0s 58ms/step - loss: 0.3763 - accuracy: 0.8496 - val_loss: 0.4653 - val_accuracy: 0.8000
Epoch 99/150
3/3 [==============================] - 0s 65ms/step - loss: 0.4071 - accuracy: 0.8232 - val_loss: 0.4657 - val_accuracy: 0.8000
Epoch 100/150
3/3 [==============================] - 0s 65ms/step - loss: 0.3885 - accuracy: 0.8443 - val_loss: 0.4663 - val_accuracy: 0.8000
Epoch 101/150
3/3 [==============================] - 0s 56ms/step - loss: 0.3987 - accuracy: 0.8417 - val_loss: 0.4666 - val_accuracy: 0.8000
Epoch 102/150
3/3 [==============================] - 0s 62ms/step - loss: 0.3814 - accuracy: 0.8417 - val_loss: 0.4670 - val_accuracy: 0.8000
Epoch 103/150
3/3 [==============================] - 0s 60ms/step - loss: 0.3905 - accuracy: 0.8311 - val_loss: 0.4675 - val_accuracy: 0.8000
Epoch 104/150
3/3 [==============================] - 0s 54ms/step - loss: 0.3847 - accuracy: 0.8549 - val_loss: 0.4682 - val_accuracy: 0.8000
Epoch 105/150
3/3 [==============================] - 0s 61ms/step - loss: 0.3801 - accuracy: 0.8628 - val_loss: 0.4691 - val_accuracy: 0.8000
Epoch 106/150
3/3 [==============================] - 0s 62ms/step - loss: 0.3680 - accuracy: 0.8496 - val_loss: 0.4700 - val_accuracy: 0.8000
Epoch 107/150
3/3 [==============================] - 6s 521ms/step - loss: 0.8634 - accuracy: 0.5289 - val_loss: 0.6596 - val_accuracy: 0.6000
Epoch 2/150
3/3 [==============================] - 0s 67ms/step - loss: 0.3786 - accuracy: 0.8417 - val_loss: 0.4707 - val_accuracy: 0.8000
Epoch 108/150
3/3 [==============================] - 0s 69ms/step - loss: 0.7335 - accuracy: 0.6211 - val_loss: 0.6461 - val_accuracy: 0.6421
Epoch 3/150
3/3 [==============================] - 0s 68ms/step - loss: 0.3666 - accuracy: 0.8522 - val_loss: 0.4714 - val_accuracy: 0.8000
Epoch 109/150
3/3 [==============================] - 0s 63ms/step - loss: 0.7632 - accuracy: 0.5763 - val_loss: 0.6346 - val_accuracy: 0.6421
Epoch 4/150
3/3 [==============================] - 0s 73ms/step - loss: 0.3849 - accuracy: 0.8417 - val_loss: 0.4716 - val_accuracy: 0.8000
Epoch 110/150
3/3 [==============================] - 0s 56ms/step - loss: 0.6889 - accuracy: 0.6263 - val_loss: 0.6244 - val_accuracy: 0.6316
Epoch 5/150
3/3 [==============================] - 0s 56ms/step - loss: 0.6865 - accuracy: 0.6447 - val_loss: 0.6160 - val_accuracy: 0.6316
3/3 [==============================] - 0s 67ms/step - loss: 0.3865 - accuracy: 0.8364 - val_loss: 0.4717 - val_accuracy: 0.8000
Epoch 111/150
Epoch 6/150
3/3 [==============================] - 0s 49ms/step - loss: 0.3845 - accuracy: 0.8549 - val_loss: 0.4723 - val_accuracy: 0.8000
Epoch 112/150
3/3 [==============================] - 0s 88ms/step - loss: 0.6906 - accuracy: 0.6421 - val_loss: 0.6082 - val_accuracy: 0.6211
Epoch 7/150
3/3 [==============================] - 0s 62ms/step - loss: 0.3700 - accuracy: 0.8391 - val_loss: 0.4726 - val_accuracy: 0.8000
Epoch 113/150
3/3 [==============================] - 0s 67ms/step - loss: 0.6068 - accuracy: 0.7079 - val_loss: 0.6012 - val_accuracy: 0.6211
Epoch 8/150
3/3 [==============================] - 0s 72ms/step - loss: 0.3508 - accuracy: 0.8602 - val_loss: 0.4730 - val_accuracy: 0.8000
Epoch 114/150
3/3 [==============================] - 0s 81ms/step - loss: 0.6104 - accuracy: 0.6895 - val_loss: 0.5948 - val_accuracy: 0.6421
Epoch 9/150
3/3 [==============================] - 0s 57ms/step - loss: 0.3646 - accuracy: 0.8443 - val_loss: 0.4733 - val_accuracy: 0.8000
Epoch 115/150
3/3 [==============================] - 0s 69ms/step - loss: 0.5774 - accuracy: 0.6921 - val_loss: 0.5889 - val_accuracy: 0.6632
Epoch 10/150
3/3 [==============================] - 0s 67ms/step - loss: 0.3771 - accuracy: 0.8470 - val_loss: 0.4737 - val_accuracy: 0.8000
Epoch 116/150
3/3 [==============================] - 0s 74ms/step - loss: 0.6129 - accuracy: 0.7053 - val_loss: 0.5837 - val_accuracy: 0.6737
Epoch 11/150
3/3 [==============================] - 0s 64ms/step - loss: 0.3175 - accuracy: 0.8760 - val_loss: 0.4741 - val_accuracy: 0.8000
Epoch 117/150
3/3 [==============================] - 0s 59ms/step - loss: 0.5508 - accuracy: 0.7368 - val_loss: 0.5788 - val_accuracy: 0.6737
Epoch 12/150
3/3 [==============================] - 0s 59ms/step - loss: 0.3548 - accuracy: 0.8549 - val_loss: 0.4744 - val_accuracy: 0.8000
Epoch 118/150
3/3 [==============================] - 0s 62ms/step - loss: 0.5664 - accuracy: 0.7105 - val_loss: 0.5739 - val_accuracy: 0.6842
Epoch 13/150
3/3 [==============================] - 0s 71ms/step - loss: 0.3721 - accuracy: 0.8522 - val_loss: 0.4745 - val_accuracy: 0.8000
Epoch 119/150
3/3 [==============================] - 0s 65ms/step - loss: 0.5770 - accuracy: 0.7474 - val_loss: 0.5690 - val_accuracy: 0.7053
Epoch 14/150
3/3 [==============================] - 0s 57ms/step - loss: 0.3890 - accuracy: 0.8470 - val_loss: 0.4748 - val_accuracy: 0.8000
Epoch 120/150
3/3 [==============================] - 0s 56ms/step - loss: 0.3577 - accuracy: 0.8443 - val_loss: 0.4750 - val_accuracy: 0.8105
Epoch 121/150
3/3 [==============================] - 0s 58ms/step - loss: 0.6026 - accuracy: 0.7316 - val_loss: 0.5644 - val_accuracy: 0.7053
Epoch 15/150
3/3 [==============================] - 0s 66ms/step - loss: 0.3744 - accuracy: 0.8602 - val_loss: 0.4752 - val_accuracy: 0.8105
3/3 [==============================] - 0s 67ms/step - loss: 0.5823 - accuracy: 0.7368 - val_loss: 0.5602 - val_accuracy: 0.7053
Epoch 122/150
Epoch 16/150
3/3 [==============================] - 0s 48ms/step - loss: 0.3901 - accuracy: 0.8417 - val_loss: 0.4752 - val_accuracy: 0.8105
Epoch 123/150
3/3 [==============================] - 0s 63ms/step - loss: 0.5710 - accuracy: 0.7526 - val_loss: 0.5561 - val_accuracy: 0.7053
Epoch 17/150
3/3 [==============================] - 0s 65ms/step - loss: 0.3532 - accuracy: 0.8628 - val_loss: 0.4753 - val_accuracy: 0.8105
Epoch 124/150
3/3 [==============================] - 0s 86ms/step - loss: 0.5755 - accuracy: 0.7263 - val_loss: 0.5517 - val_accuracy: 0.7263
Epoch 18/150
3/3 [==============================] - 0s 40ms/step - loss: 0.3607 - accuracy: 0.8443 - val_loss: 0.4759 - val_accuracy: 0.8105
Epoch 125/150
3/3 [==============================] - 0s 53ms/step - loss: 0.3780 - accuracy: 0.8470 - val_loss: 0.4761 - val_accuracy: 0.8105
Epoch 126/150
3/3 [==============================] - 0s 68ms/step - loss: 0.5352 - accuracy: 0.7553 - val_loss: 0.5479 - val_accuracy: 0.7368
Epoch 19/150
3/3 [==============================] - 0s 69ms/step - loss: 0.3544 - accuracy: 0.8391 - val_loss: 0.4763 - val_accuracy: 0.8105
Epoch 127/150
3/3 [==============================] - 0s 74ms/step - loss: 0.5246 - accuracy: 0.7737 - val_loss: 0.5442 - val_accuracy: 0.7368
Epoch 20/150
3/3 [==============================] - 0s 53ms/step - loss: 0.5276 - accuracy: 0.7579 - val_loss: 0.5405 - val_accuracy: 0.7368
Epoch 21/150
3/3 [==============================] - 0s 70ms/step - loss: 0.3401 - accuracy: 0.8575 - val_loss: 0.4769 - val_accuracy: 0.8105
Epoch 128/150
3/3 [==============================] - 0s 66ms/step - loss: 0.3829 - accuracy: 0.8628 - val_loss: 0.4768 - val_accuracy: 0.8105
3/3 [==============================] - 0s 67ms/step - loss: 0.5212 - accuracy: 0.7553 - val_loss: 0.5368 - val_accuracy: 0.7474
Epoch 129/150
1/3 [=========>....................] - ETA: 0s - loss: 0.3625 - accuracy: 0.8438Epoch 22/150
3/3 [==============================] - 0s 69ms/step - loss: 0.3735 - accuracy: 0.8522 - val_loss: 0.4771 - val_accuracy: 0.8105
Epoch 130/150
3/3 [==============================] - 0s 78ms/step - loss: 0.5602 - accuracy: 0.7316 - val_loss: 0.5334 - val_accuracy: 0.7684
Epoch 23/150
3/3 [==============================] - 0s 61ms/step - loss: 0.3528 - accuracy: 0.8364 - val_loss: 0.4776 - val_accuracy: 0.8105
Epoch 131/150
3/3 [==============================] - 0s 88ms/step - loss: 0.5134 - accuracy: 0.7763 - val_loss: 0.5303 - val_accuracy: 0.7684
Epoch 24/150
3/3 [==============================] - 0s 73ms/step - loss: 0.3594 - accuracy: 0.8681 - val_loss: 0.4780 - val_accuracy: 0.8105
Epoch 132/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4804 - accuracy: 0.8026 - val_loss: 0.5271 - val_accuracy: 0.7684
Epoch 25/150
3/3 [==============================] - 0s 68ms/step - loss: 0.3601 - accuracy: 0.8285 - val_loss: 0.4782 - val_accuracy: 0.8105
Epoch 133/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4659 - accuracy: 0.7632 - val_loss: 0.5242 - val_accuracy: 0.7684
Epoch 26/150
3/3 [==============================] - 0s 72ms/step - loss: 0.3552 - accuracy: 0.8549 - val_loss: 0.4786 - val_accuracy: 0.8105
Epoch 134/150
3/3 [==============================] - 0s 66ms/step - loss: 0.5705 - accuracy: 0.7447 - val_loss: 0.5211 - val_accuracy: 0.7684
Epoch 27/150
3/3 [==============================] - 0s 67ms/step - loss: 0.3521 - accuracy: 0.8602 - val_loss: 0.4789 - val_accuracy: 0.8105
Epoch 135/150
3/3 [==============================] - 0s 71ms/step - loss: 0.5272 - accuracy: 0.7474 - val_loss: 0.5181 - val_accuracy: 0.7789
Epoch 28/150
3/3 [==============================] - 0s 72ms/step - loss: 0.3725 - accuracy: 0.8391 - val_loss: 0.4792 - val_accuracy: 0.8105
Epoch 136/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4866 - accuracy: 0.7711 - val_loss: 0.5151 - val_accuracy: 0.7789
Epoch 29/150
3/3 [==============================] - 0s 66ms/step - loss: 0.3738 - accuracy: 0.8417 - val_loss: 0.4792 - val_accuracy: 0.8105
Epoch 137/150
3/3 [==============================] - 0s 69ms/step - loss: 0.5016 - accuracy: 0.7842 - val_loss: 0.5124 - val_accuracy: 0.7789
Epoch 30/150
3/3 [==============================] - 0s 66ms/step - loss: 0.3393 - accuracy: 0.8654 - val_loss: 0.4794 - val_accuracy: 0.8105
Epoch 138/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4835 - accuracy: 0.7737 - val_loss: 0.5098 - val_accuracy: 0.7895
Epoch 31/150
3/3 [==============================] - 0s 62ms/step - loss: 0.3674 - accuracy: 0.8522 - val_loss: 0.4797 - val_accuracy: 0.8000
Epoch 139/150
3/3 [==============================] - 0s 85ms/step - loss: 0.5245 - accuracy: 0.7684 - val_loss: 0.5073 - val_accuracy: 0.7895
Epoch 32/150
3/3 [==============================] - 0s 90ms/step - loss: 0.3620 - accuracy: 0.8549 - val_loss: 0.4798 - val_accuracy: 0.8000
Epoch 140/150
3/3 [==============================] - 0s 87ms/step - loss: 0.4961 - accuracy: 0.7684 - val_loss: 0.5049 - val_accuracy: 0.7895
Epoch 33/150
3/3 [==============================] - 0s 75ms/step - loss: 0.3745 - accuracy: 0.8470 - val_loss: 0.4805 - val_accuracy: 0.8000
Epoch 141/150
3/3 [==============================] - 0s 99ms/step - loss: 0.4983 - accuracy: 0.7684 - val_loss: 0.5024 - val_accuracy: 0.7895
Epoch 34/150
3/3 [==============================] - 0s 98ms/step - loss: 0.3580 - accuracy: 0.8575 - val_loss: 0.4812 - val_accuracy: 0.8105
Epoch 142/150
3/3 [==============================] - 0s 91ms/step - loss: 0.4934 - accuracy: 0.7895 - val_loss: 0.5001 - val_accuracy: 0.7895
3/3 [==============================] - 0s 76ms/step - loss: 0.3492 - accuracy: 0.8417 - val_loss: 0.4817 - val_accuracy: 0.8105
Epoch 35/150
Epoch 143/150
3/3 [==============================] - 0s 87ms/step - loss: 0.3472 - accuracy: 0.8654 - val_loss: 0.4820 - val_accuracy: 0.8105
3/3 [==============================] - 0s 95ms/step - loss: 0.4715 - accuracy: 0.7842 - val_loss: 0.4979 - val_accuracy: 0.7895
Epoch 36/150
Epoch 144/150
3/3 [==============================] - 0s 106ms/step - loss: 0.3360 - accuracy: 0.8549 - val_loss: 0.4822 - val_accuracy: 0.8105
Epoch 145/150
3/3 [==============================] - 0s 115ms/step - loss: 0.4773 - accuracy: 0.7947 - val_loss: 0.4959 - val_accuracy: 0.7895
Epoch 37/150
3/3 [==============================] - 0s 79ms/step - loss: 0.3539 - accuracy: 0.8496 - val_loss: 0.4824 - val_accuracy: 0.8105
Epoch 146/150
3/3 [==============================] - 0s 91ms/step - loss: 0.5200 - accuracy: 0.7868 - val_loss: 0.4940 - val_accuracy: 0.7895
Epoch 38/150
3/3 [==============================] - 0s 91ms/step - loss: 0.3875 - accuracy: 0.8417 - val_loss: 0.4832 - val_accuracy: 0.8105
Epoch 147/150
3/3 [==============================] - 0s 98ms/step - loss: 0.4641 - accuracy: 0.7974 - val_loss: 0.4921 - val_accuracy: 0.7895
Epoch 39/150
3/3 [==============================] - 0s 85ms/step - loss: 0.3428 - accuracy: 0.8522 - val_loss: 0.4842 - val_accuracy: 0.8105
Epoch 148/150
3/3 [==============================] - 0s 92ms/step - loss: 0.5023 - accuracy: 0.7632 - val_loss: 0.4904 - val_accuracy: 0.7895
Epoch 40/150
3/3 [==============================] - 0s 85ms/step - loss: 0.3818 - accuracy: 0.8311 - val_loss: 0.4849 - val_accuracy: 0.8105
Epoch 149/150
3/3 [==============================] - 0s 88ms/step - loss: 0.5287 - accuracy: 0.7658 - val_loss: 0.4885 - val_accuracy: 0.7895
Epoch 41/150
3/3 [==============================] - 0s 89ms/step - loss: 0.3605 - accuracy: 0.8602 - val_loss: 0.4858 - val_accuracy: 0.8105
Epoch 150/150
3/3 [==============================] - 0s 83ms/step - loss: 0.5412 - accuracy: 0.7632 - val_loss: 0.4867 - val_accuracy: 0.7895
Epoch 42/150
3/3 [==============================] - 0s 82ms/step - loss: 0.3505 - accuracy: 0.8549 - val_loss: 0.4861 - val_accuracy: 0.8105
3/3 [==============================] - 0s 75ms/step - loss: 0.5403 - accuracy: 0.7526 - val_loss: 0.4851 - val_accuracy: 0.7895
Epoch 43/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4995 - accuracy: 0.7789 - val_loss: 0.4833 - val_accuracy: 0.7895
Epoch 44/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4923 - accuracy: 0.7737 - val_loss: 0.4817 - val_accuracy: 0.7789
Epoch 45/150
3/3 [==============================] - 0s 52ms/step - loss: 0.5194 - accuracy: 0.7816 - val_loss: 0.4805 - val_accuracy: 0.7789
Epoch 46/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4681 - accuracy: 0.8026 - val_loss: 0.4793 - val_accuracy: 0.7789
Epoch 47/150
3/3 [==============================] - 0s 70ms/step - loss: 0.4751 - accuracy: 0.7763 - val_loss: 0.4781 - val_accuracy: 0.7789
Epoch 48/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4866 - accuracy: 0.8105 - val_loss: 0.4767 - val_accuracy: 0.7895
Epoch 49/150
3/3 [==============================] - 0s 54ms/step - loss: 0.5069 - accuracy: 0.7921 - val_loss: 0.4757 - val_accuracy: 0.7895
Epoch 50/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4750 - accuracy: 0.7947 - val_loss: 0.4746 - val_accuracy: 0.7895
Epoch 51/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4716 - accuracy: 0.8079 - val_loss: 0.4736 - val_accuracy: 0.8000
Epoch 52/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4357 - accuracy: 0.8184 - val_loss: 0.4725 - val_accuracy: 0.8000
Epoch 53/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4561 - accuracy: 0.8184 - val_loss: 0.4714 - val_accuracy: 0.7895
Epoch 54/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4913 - accuracy: 0.8079 - val_loss: 0.4704 - val_accuracy: 0.7895
Epoch 55/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4475 - accuracy: 0.8053 - val_loss: 0.4692 - val_accuracy: 0.7895
Epoch 56/150
3/3 [==============================] - 0s 42ms/step - loss: 0.4848 - accuracy: 0.7947 - val_loss: 0.4683 - val_accuracy: 0.7895
Epoch 57/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4872 - accuracy: 0.8000 - val_loss: 0.4674 - val_accuracy: 0.7895
Epoch 58/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4678 - accuracy: 0.7789 - val_loss: 0.4663 - val_accuracy: 0.7895
Epoch 59/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4872 - accuracy: 0.7868 - val_loss: 0.4655 - val_accuracy: 0.7789
Epoch 60/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4330 - accuracy: 0.8026 - val_loss: 0.4647 - val_accuracy: 0.7789
Epoch 61/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4558 - accuracy: 0.7947 - val_loss: 0.4640 - val_accuracy: 0.7789
Epoch 62/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4897 - accuracy: 0.7816 - val_loss: 0.4630 - val_accuracy: 0.7789
Epoch 63/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4643 - accuracy: 0.8105 - val_loss: 0.4624 - val_accuracy: 0.7789
Epoch 64/150
3/3 [==============================] - 0s 63ms/step - loss: 0.5035 - accuracy: 0.7579 - val_loss: 0.4615 - val_accuracy: 0.7789
Epoch 65/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4858 - accuracy: 0.8026 - val_loss: 0.4609 - val_accuracy: 0.7789
Epoch 66/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4425 - accuracy: 0.8079 - val_loss: 0.4600 - val_accuracy: 0.7789
Epoch 67/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4927 - accuracy: 0.8053 - val_loss: 0.4592 - val_accuracy: 0.7789
Epoch 68/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4757 - accuracy: 0.8105 - val_loss: 0.4587 - val_accuracy: 0.7789
Epoch 69/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4416 - accuracy: 0.8026 - val_loss: 0.4580 - val_accuracy: 0.7789
Epoch 70/150
3/3 [==============================] - 0s 50ms/step - loss: 0.4664 - accuracy: 0.7895 - val_loss: 0.4575 - val_accuracy: 0.7789
Epoch 71/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4507 - accuracy: 0.7947 - val_loss: 0.4570 - val_accuracy: 0.7789
Epoch 72/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4936 - accuracy: 0.7947 - val_loss: 0.4562 - val_accuracy: 0.7789
Epoch 73/150
3/3 [==============================] - 0s 58ms/step - loss: 0.4455 - accuracy: 0.8026 - val_loss: 0.4554 - val_accuracy: 0.7789
Epoch 74/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4625 - accuracy: 0.8026 - val_loss: 0.4546 - val_accuracy: 0.7789
Epoch 75/150
3/3 [==============================] - 0s 57ms/step - loss: 0.4725 - accuracy: 0.7895 - val_loss: 0.4539 - val_accuracy: 0.7789
Epoch 76/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4796 - accuracy: 0.7842 - val_loss: 0.4534 - val_accuracy: 0.7789
Epoch 77/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4439 - accuracy: 0.8000 - val_loss: 0.4527 - val_accuracy: 0.7789
Epoch 78/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4885 - accuracy: 0.7974 - val_loss: 0.4523 - val_accuracy: 0.7789
Epoch 79/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4455 - accuracy: 0.8184 - val_loss: 0.4519 - val_accuracy: 0.7789
Epoch 80/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4644 - accuracy: 0.7868 - val_loss: 0.4518 - val_accuracy: 0.7789
Epoch 81/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4504 - accuracy: 0.8237 - val_loss: 0.4516 - val_accuracy: 0.7789
Epoch 82/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4382 - accuracy: 0.8184 - val_loss: 0.4515 - val_accuracy: 0.7789
Epoch 83/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4597 - accuracy: 0.8105 - val_loss: 0.4513 - val_accuracy: 0.7684
Epoch 84/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4443 - accuracy: 0.8132 - val_loss: 0.4512 - val_accuracy: 0.7684
Epoch 85/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4353 - accuracy: 0.8079 - val_loss: 0.4512 - val_accuracy: 0.7684
Epoch 86/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4275 - accuracy: 0.8053 - val_loss: 0.4511 - val_accuracy: 0.7684
Epoch 87/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4153 - accuracy: 0.8132 - val_loss: 0.4512 - val_accuracy: 0.7684
Epoch 88/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4354 - accuracy: 0.8105 - val_loss: 0.4510 - val_accuracy: 0.7684
Epoch 89/150
3/3 [==============================] - 0s 31ms/step - loss: 0.4962 - accuracy: 0.7921 - val_loss: 0.4510 - val_accuracy: 0.7684
Epoch 90/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4471 - accuracy: 0.8105 - val_loss: 0.4509 - val_accuracy: 0.7684
Epoch 91/150
3/3 [==============================] - 0s 32ms/step - loss: 0.4658 - accuracy: 0.8026 - val_loss: 0.4509 - val_accuracy: 0.7684
Epoch 92/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4151 - accuracy: 0.8105 - val_loss: 0.4507 - val_accuracy: 0.7684
Epoch 93/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4131 - accuracy: 0.8316 - val_loss: 0.4505 - val_accuracy: 0.7684
Epoch 94/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4504 - accuracy: 0.8184 - val_loss: 0.4503 - val_accuracy: 0.7684
Epoch 95/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4123 - accuracy: 0.8105 - val_loss: 0.4501 - val_accuracy: 0.7684
Epoch 96/150
3/3 [==============================] - 0s 42ms/step - loss: 0.4554 - accuracy: 0.7974 - val_loss: 0.4503 - val_accuracy: 0.7684
Epoch 97/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4584 - accuracy: 0.8132 - val_loss: 0.4504 - val_accuracy: 0.7684
Epoch 98/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4224 - accuracy: 0.8237 - val_loss: 0.4505 - val_accuracy: 0.7684
Epoch 99/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4317 - accuracy: 0.8184 - val_loss: 0.4504 - val_accuracy: 0.7684
Epoch 100/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4596 - accuracy: 0.8263 - val_loss: 0.4504 - val_accuracy: 0.7684
Epoch 101/150
3/3 [==============================] - 0s 42ms/step - loss: 0.4266 - accuracy: 0.8368 - val_loss: 0.4503 - val_accuracy: 0.7684
Epoch 102/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4646 - accuracy: 0.8053 - val_loss: 0.4502 - val_accuracy: 0.7684
Epoch 103/150
3/3 [==============================] - 0s 38ms/step - loss: 0.3939 - accuracy: 0.8105 - val_loss: 0.4502 - val_accuracy: 0.7684
Epoch 104/150
3/3 [==============================] - 0s 37ms/step - loss: 0.4439 - accuracy: 0.8132 - val_loss: 0.4503 - val_accuracy: 0.7684
Epoch 105/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4380 - accuracy: 0.8184 - val_loss: 0.4505 - val_accuracy: 0.7684
Epoch 106/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4400 - accuracy: 0.8105 - val_loss: 0.4506 - val_accuracy: 0.7684
Epoch 107/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4089 - accuracy: 0.8158 - val_loss: 0.4506 - val_accuracy: 0.7684
Epoch 108/150
3/3 [==============================] - 0s 42ms/step - loss: 0.4126 - accuracy: 0.8211 - val_loss: 0.4507 - val_accuracy: 0.7684
Epoch 109/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4390 - accuracy: 0.8263 - val_loss: 0.4505 - val_accuracy: 0.7684
Epoch 110/150
3/3 [==============================] - 0s 32ms/step - loss: 0.4297 - accuracy: 0.8184 - val_loss: 0.4506 - val_accuracy: 0.7684
Epoch 111/150
3/3 [==============================] - 0s 31ms/step - loss: 0.4588 - accuracy: 0.8184 - val_loss: 0.4505 - val_accuracy: 0.7684
Epoch 112/150
3/3 [==============================] - 0s 35ms/step - loss: 0.4581 - accuracy: 0.8184 - val_loss: 0.4504 - val_accuracy: 0.7684
Epoch 113/150
3/3 [==============================] - 0s 32ms/step - loss: 0.4388 - accuracy: 0.8000 - val_loss: 0.4504 - val_accuracy: 0.7684
Epoch 114/150
3/3 [==============================] - 0s 30ms/step - loss: 0.4492 - accuracy: 0.8158 - val_loss: 0.4505 - val_accuracy: 0.7684
Epoch 115/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4560 - accuracy: 0.8026 - val_loss: 0.4507 - val_accuracy: 0.7684
Epoch 116/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4026 - accuracy: 0.8158 - val_loss: 0.4509 - val_accuracy: 0.7684
Epoch 117/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4517 - accuracy: 0.8105 - val_loss: 0.4512 - val_accuracy: 0.7684
Epoch 118/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4698 - accuracy: 0.7947 - val_loss: 0.4515 - val_accuracy: 0.7684
Epoch 119/150
3/3 [==============================] - 0s 57ms/step - loss: 0.4285 - accuracy: 0.8105 - val_loss: 0.4517 - val_accuracy: 0.7684
Epoch 120/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4232 - accuracy: 0.8263 - val_loss: 0.4520 - val_accuracy: 0.7684
Epoch 121/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4213 - accuracy: 0.8263 - val_loss: 0.4524 - val_accuracy: 0.7684
Epoch 122/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4173 - accuracy: 0.8342 - val_loss: 0.4523 - val_accuracy: 0.7684
Epoch 123/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4288 - accuracy: 0.8053 - val_loss: 0.4524 - val_accuracy: 0.7684
Epoch 124/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4205 - accuracy: 0.8237 - val_loss: 0.4525 - val_accuracy: 0.7684
Epoch 125/150
3/3 [==============================] - 0s 37ms/step - loss: 0.4012 - accuracy: 0.8237 - val_loss: 0.4526 - val_accuracy: 0.7684
Epoch 126/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4401 - accuracy: 0.8105 - val_loss: 0.4526 - val_accuracy: 0.7684
Epoch 127/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4150 - accuracy: 0.8342 - val_loss: 0.4529 - val_accuracy: 0.7684
Epoch 128/150
3/3 [==============================] - 0s 42ms/step - loss: 0.3935 - accuracy: 0.8421 - val_loss: 0.4530 - val_accuracy: 0.7684
Epoch 129/150
3/3 [==============================] - 0s 65ms/step - loss: 0.4169 - accuracy: 0.8184 - val_loss: 0.4533 - val_accuracy: 0.7684
Epoch 130/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4168 - accuracy: 0.8289 - val_loss: 0.4536 - val_accuracy: 0.7684
Epoch 131/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4035 - accuracy: 0.8316 - val_loss: 0.4538 - val_accuracy: 0.7684
Epoch 132/150
3/3 [==============================] - 0s 61ms/step - loss: 0.4097 - accuracy: 0.8237 - val_loss: 0.4538 - val_accuracy: 0.7684
Epoch 133/150
3/3 [==============================] - 0s 49ms/step - loss: 0.4185 - accuracy: 0.8158 - val_loss: 0.4541 - val_accuracy: 0.7684
Epoch 134/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4263 - accuracy: 0.8211 - val_loss: 0.4543 - val_accuracy: 0.7684
Epoch 135/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4414 - accuracy: 0.7921 - val_loss: 0.4545 - val_accuracy: 0.7684
Epoch 136/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4091 - accuracy: 0.8289 - val_loss: 0.4546 - val_accuracy: 0.7684
Epoch 137/150
3/3 [==============================] - 0s 35ms/step - loss: 0.4066 - accuracy: 0.8395 - val_loss: 0.4547 - val_accuracy: 0.7684
Epoch 138/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4071 - accuracy: 0.8395 - val_loss: 0.4548 - val_accuracy: 0.7789
Epoch 139/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4378 - accuracy: 0.8105 - val_loss: 0.4550 - val_accuracy: 0.7789
Epoch 140/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4272 - accuracy: 0.8237 - val_loss: 0.4550 - val_accuracy: 0.7789
Epoch 141/150
3/3 [==============================] - 0s 36ms/step - loss: 0.4417 - accuracy: 0.8289 - val_loss: 0.4552 - val_accuracy: 0.7789
Epoch 142/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4269 - accuracy: 0.8237 - val_loss: 0.4554 - val_accuracy: 0.7789
Epoch 143/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4098 - accuracy: 0.8605 - val_loss: 0.4557 - val_accuracy: 0.7789
Epoch 144/150
3/3 [==============================] - 0s 42ms/step - loss: 0.4159 - accuracy: 0.8316 - val_loss: 0.4560 - val_accuracy: 0.7789
Epoch 145/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4557 - accuracy: 0.8237 - val_loss: 0.4560 - val_accuracy: 0.7789
Epoch 146/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4241 - accuracy: 0.8211 - val_loss: 0.4564 - val_accuracy: 0.7789
Epoch 147/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4199 - accuracy: 0.8263 - val_loss: 0.4567 - val_accuracy: 0.7789
Epoch 148/150
3/3 [==============================] - 0s 35ms/step - loss: 0.4213 - accuracy: 0.8263 - val_loss: 0.4570 - val_accuracy: 0.7789
Epoch 149/150
3/3 [==============================] - 0s 57ms/step - loss: 0.3951 - accuracy: 0.8237 - val_loss: 0.4572 - val_accuracy: 0.7789
Epoch 150/150
3/3 [==============================] - 0s 44ms/step - loss: 0.3783 - accuracy: 0.8447 - val_loss: 0.4575 - val_accuracy: 0.7789
2/2 [==============================] - 0s 11ms/step - loss: 0.3919 - accuracy: 0.8439
Epoch 1/150
3/3 [==============================] - 2s 203ms/step - loss: 0.8349 - accuracy: 0.5132 - val_loss: 0.6689 - val_accuracy: 0.6000
Epoch 2/150
3/3 [==============================] - 0s 41ms/step - loss: 0.8080 - accuracy: 0.5842 - val_loss: 0.6538 - val_accuracy: 0.6421
Epoch 3/150
3/3 [==============================] - 0s 43ms/step - loss: 0.7913 - accuracy: 0.5158 - val_loss: 0.6401 - val_accuracy: 0.6421
Epoch 4/150
3/3 [==============================] - 0s 57ms/step - loss: 0.7121 - accuracy: 0.6368 - val_loss: 0.6279 - val_accuracy: 0.6632
Epoch 5/150
3/3 [==============================] - 0s 53ms/step - loss: 0.6759 - accuracy: 0.6474 - val_loss: 0.6170 - val_accuracy: 0.6842
Epoch 6/150
3/3 [==============================] - 0s 43ms/step - loss: 0.6647 - accuracy: 0.6711 - val_loss: 0.6074 - val_accuracy: 0.7474
Epoch 7/150
3/3 [==============================] - 0s 49ms/step - loss: 0.6397 - accuracy: 0.6868 - val_loss: 0.5985 - val_accuracy: 0.7474
Epoch 8/150
3/3 [==============================] - 0s 43ms/step - loss: 0.6363 - accuracy: 0.6816 - val_loss: 0.5905 - val_accuracy: 0.7474
Epoch 9/150
3/3 [==============================] - 0s 48ms/step - loss: 0.6084 - accuracy: 0.6789 - val_loss: 0.5831 - val_accuracy: 0.7579
Epoch 10/150
3/3 [==============================] - 0s 52ms/step - loss: 0.6168 - accuracy: 0.6763 - val_loss: 0.5760 - val_accuracy: 0.7684
Epoch 11/150
3/3 [==============================] - 0s 45ms/step - loss: 0.5892 - accuracy: 0.7053 - val_loss: 0.5694 - val_accuracy: 0.8000
Epoch 12/150
3/3 [==============================] - 0s 53ms/step - loss: 0.5939 - accuracy: 0.7105 - val_loss: 0.5634 - val_accuracy: 0.8000
Epoch 13/150
3/3 [==============================] - 0s 64ms/step - loss: 0.5985 - accuracy: 0.7079 - val_loss: 0.5573 - val_accuracy: 0.8105
Epoch 14/150
3/3 [==============================] - 0s 45ms/step - loss: 0.6085 - accuracy: 0.7026 - val_loss: 0.5515 - val_accuracy: 0.8211
Epoch 15/150
3/3 [==============================] - 0s 43ms/step - loss: 0.5817 - accuracy: 0.7184 - val_loss: 0.5460 - val_accuracy: 0.8211
Epoch 16/150
3/3 [==============================] - 0s 39ms/step - loss: 0.5608 - accuracy: 0.7421 - val_loss: 0.5406 - val_accuracy: 0.8211
Epoch 17/150
3/3 [==============================] - 0s 37ms/step - loss: 0.5600 - accuracy: 0.7237 - val_loss: 0.5356 - val_accuracy: 0.8211
Epoch 18/150
3/3 [==============================] - 0s 45ms/step - loss: 0.5383 - accuracy: 0.7684 - val_loss: 0.5312 - val_accuracy: 0.8211
Epoch 19/150
3/3 [==============================] - 0s 42ms/step - loss: 0.5059 - accuracy: 0.7526 - val_loss: 0.5269 - val_accuracy: 0.8211
Epoch 20/150
3/3 [==============================] - 0s 41ms/step - loss: 0.5714 - accuracy: 0.7184 - val_loss: 0.5227 - val_accuracy: 0.8421
Epoch 21/150
3/3 [==============================] - 0s 40ms/step - loss: 0.5382 - accuracy: 0.7342 - val_loss: 0.5183 - val_accuracy: 0.8421
Epoch 22/150
3/3 [==============================] - 0s 38ms/step - loss: 0.5122 - accuracy: 0.7658 - val_loss: 0.5141 - val_accuracy: 0.8421
Epoch 23/150
3/3 [==============================] - 0s 45ms/step - loss: 0.5510 - accuracy: 0.7211 - val_loss: 0.5100 - val_accuracy: 0.8421
Epoch 24/150
3/3 [==============================] - 0s 42ms/step - loss: 0.5342 - accuracy: 0.7421 - val_loss: 0.5061 - val_accuracy: 0.8526
Epoch 25/150
3/3 [==============================] - 0s 48ms/step - loss: 0.5521 - accuracy: 0.7500 - val_loss: 0.5025 - val_accuracy: 0.8526
Epoch 26/150
3/3 [==============================] - 0s 44ms/step - loss: 0.5163 - accuracy: 0.7632 - val_loss: 0.4991 - val_accuracy: 0.8526
Epoch 27/150
3/3 [==============================] - 0s 42ms/step - loss: 0.5353 - accuracy: 0.7632 - val_loss: 0.4955 - val_accuracy: 0.8526
Epoch 28/150
3/3 [==============================] - 0s 42ms/step - loss: 0.5351 - accuracy: 0.7395 - val_loss: 0.4919 - val_accuracy: 0.8632
Epoch 29/150
3/3 [==============================] - 0s 43ms/step - loss: 0.5142 - accuracy: 0.7632 - val_loss: 0.4883 - val_accuracy: 0.8632
Epoch 30/150
3/3 [==============================] - 0s 63ms/step - loss: 0.5295 - accuracy: 0.7526 - val_loss: 0.4849 - val_accuracy: 0.8632
Epoch 31/150
3/3 [==============================] - 0s 50ms/step - loss: 0.4984 - accuracy: 0.7579 - val_loss: 0.4817 - val_accuracy: 0.8526
Epoch 32/150
3/3 [==============================] - 0s 50ms/step - loss: 0.5268 - accuracy: 0.7605 - val_loss: 0.4782 - val_accuracy: 0.8526
Epoch 33/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4880 - accuracy: 0.7842 - val_loss: 0.4747 - val_accuracy: 0.8526
Epoch 34/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4903 - accuracy: 0.7947 - val_loss: 0.4715 - val_accuracy: 0.8526
Epoch 35/150
3/3 [==============================] - 0s 55ms/step - loss: 0.5068 - accuracy: 0.7500 - val_loss: 0.4688 - val_accuracy: 0.8526
Epoch 36/150
3/3 [==============================] - 0s 64ms/step - loss: 0.5092 - accuracy: 0.7526 - val_loss: 0.4659 - val_accuracy: 0.8632
Epoch 37/150
3/3 [==============================] - 0s 50ms/step - loss: 0.5151 - accuracy: 0.7605 - val_loss: 0.4629 - val_accuracy: 0.8632
Epoch 38/150
3/3 [==============================] - 0s 52ms/step - loss: 0.5041 - accuracy: 0.7789 - val_loss: 0.4599 - val_accuracy: 0.8632
Epoch 39/150
3/3 [==============================] - 0s 74ms/step - loss: 0.5103 - accuracy: 0.7632 - val_loss: 0.4571 - val_accuracy: 0.8632
Epoch 40/150
3/3 [==============================] - 0s 71ms/step - loss: 0.5216 - accuracy: 0.7421 - val_loss: 0.4542 - val_accuracy: 0.8632
Epoch 41/150
2/2 [==============================] - 0s 9ms/step - loss: 0.5573 - accuracy: 0.7773
3/3 [==============================] - 0s 76ms/step - loss: 0.4512 - accuracy: 0.7868 - val_loss: 0.4517 - val_accuracy: 0.8632
Epoch 42/150
3/3 [==============================] - 0s 71ms/step - loss: 0.5182 - accuracy: 0.7658 - val_loss: 0.4491 - val_accuracy: 0.8632
Epoch 43/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4913 - accuracy: 0.7763 - val_loss: 0.4461 - val_accuracy: 0.8632
Epoch 44/150
3/3 [==============================] - 0s 72ms/step - loss: 0.5378 - accuracy: 0.7737 - val_loss: 0.4434 - val_accuracy: 0.8632
Epoch 45/150
1/3 [=========>....................] - ETA: 0s - loss: 0.4955 - accuracy: 0.7422Epoch 1/150
3/3 [==============================] - 0s 59ms/step - loss: 0.5027 - accuracy: 0.7579 - val_loss: 0.4407 - val_accuracy: 0.8632
Epoch 46/150
3/3 [==============================] - 0s 55ms/step - loss: 0.5140 - accuracy: 0.7658 - val_loss: 0.4382 - val_accuracy: 0.8632
Epoch 47/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4568 - accuracy: 0.8053 - val_loss: 0.4359 - val_accuracy: 0.8632
Epoch 48/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4943 - accuracy: 0.7763 - val_loss: 0.4335 - val_accuracy: 0.8632
Epoch 49/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4767 - accuracy: 0.7789 - val_loss: 0.4314 - val_accuracy: 0.8632
Epoch 50/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4768 - accuracy: 0.8026 - val_loss: 0.4292 - val_accuracy: 0.8632
Epoch 51/150
3/3 [==============================] - 0s 72ms/step - loss: 0.5052 - accuracy: 0.7684 - val_loss: 0.4274 - val_accuracy: 0.8632
Epoch 52/150
3/3 [==============================] - 0s 88ms/step - loss: 0.4402 - accuracy: 0.7895 - val_loss: 0.4254 - val_accuracy: 0.8632
Epoch 53/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4867 - accuracy: 0.7658 - val_loss: 0.4233 - val_accuracy: 0.8632
Epoch 54/150
3/3 [==============================] - 0s 81ms/step - loss: 0.5019 - accuracy: 0.7868 - val_loss: 0.4215 - val_accuracy: 0.8526
Epoch 55/150
3/3 [==============================] - 0s 80ms/step - loss: 0.5056 - accuracy: 0.7605 - val_loss: 0.4196 - val_accuracy: 0.8526
Epoch 56/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4670 - accuracy: 0.7868 - val_loss: 0.4177 - val_accuracy: 0.8526
Epoch 57/150
3/3 [==============================] - 0s 64ms/step - loss: 0.5136 - accuracy: 0.7447 - val_loss: 0.4160 - val_accuracy: 0.8526
Epoch 58/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4993 - accuracy: 0.7605 - val_loss: 0.4147 - val_accuracy: 0.8526
Epoch 59/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4520 - accuracy: 0.7868 - val_loss: 0.4130 - val_accuracy: 0.8526
Epoch 60/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4652 - accuracy: 0.7553 - val_loss: 0.4113 - val_accuracy: 0.8526
Epoch 61/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4927 - accuracy: 0.7816 - val_loss: 0.4094 - val_accuracy: 0.8526
Epoch 62/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4588 - accuracy: 0.7789 - val_loss: 0.4076 - val_accuracy: 0.8632
Epoch 63/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4801 - accuracy: 0.7895 - val_loss: 0.4061 - val_accuracy: 0.8632
Epoch 64/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4877 - accuracy: 0.7789 - val_loss: 0.4046 - val_accuracy: 0.8632
Epoch 65/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4663 - accuracy: 0.7842 - val_loss: 0.4033 - val_accuracy: 0.8632
Epoch 66/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4904 - accuracy: 0.7553 - val_loss: 0.4017 - val_accuracy: 0.8632
Epoch 67/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4550 - accuracy: 0.8158 - val_loss: 0.4006 - val_accuracy: 0.8632
Epoch 68/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4650 - accuracy: 0.7737 - val_loss: 0.3994 - val_accuracy: 0.8632
Epoch 69/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4806 - accuracy: 0.7763 - val_loss: 0.3979 - val_accuracy: 0.8632
Epoch 70/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4386 - accuracy: 0.7842 - val_loss: 0.3966 - val_accuracy: 0.8632
Epoch 71/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4281 - accuracy: 0.8053 - val_loss: 0.3950 - val_accuracy: 0.8632
Epoch 72/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4365 - accuracy: 0.8079 - val_loss: 0.3938 - val_accuracy: 0.8632
Epoch 73/150
3/3 [==============================] - 0s 84ms/step - loss: 0.4288 - accuracy: 0.8211 - val_loss: 0.3927 - val_accuracy: 0.8632
Epoch 74/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4789 - accuracy: 0.8026 - val_loss: 0.3914 - val_accuracy: 0.8632
Epoch 75/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4605 - accuracy: 0.7763 - val_loss: 0.3905 - val_accuracy: 0.8632
Epoch 76/150
3/3 [==============================] - 0s 85ms/step - loss: 0.4750 - accuracy: 0.7974 - val_loss: 0.3896 - val_accuracy: 0.8632
Epoch 77/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4858 - accuracy: 0.7868 - val_loss: 0.3887 - val_accuracy: 0.8632
Epoch 78/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4452 - accuracy: 0.7868 - val_loss: 0.3878 - val_accuracy: 0.8632
Epoch 79/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4632 - accuracy: 0.7947 - val_loss: 0.3869 - val_accuracy: 0.8632
Epoch 80/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4599 - accuracy: 0.8053 - val_loss: 0.3861 - val_accuracy: 0.8632
Epoch 81/150
3/3 [==============================] - 6s 517ms/step - loss: 0.9638 - accuracy: 0.5356 - val_loss: 0.7374 - val_accuracy: 0.4526
1/3 [=========>....................] - ETA: 0s - loss: 0.4806 - accuracy: 0.8047Epoch 2/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4770 - accuracy: 0.7921 - val_loss: 0.3853 - val_accuracy: 0.8632
Epoch 82/150
3/3 [==============================] - 0s 67ms/step - loss: 0.8636 - accuracy: 0.5541 - val_loss: 0.7131 - val_accuracy: 0.5474
Epoch 3/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4707 - accuracy: 0.7842 - val_loss: 0.3844 - val_accuracy: 0.8632
3/3 [==============================] - 0s 80ms/step - loss: 0.7862 - accuracy: 0.5884 - val_loss: 0.6922 - val_accuracy: 0.5895
Epoch 83/150
Epoch 4/150
3/3 [==============================] - 0s 61ms/step - loss: 0.4826 - accuracy: 0.7868 - val_loss: 0.3838 - val_accuracy: 0.8632
3/3 [==============================] - 0s 60ms/step - loss: 0.6818 - accuracy: 0.6306 - val_loss: 0.6734 - val_accuracy: 0.6211
Epoch 5/150
Epoch 84/150
3/3 [==============================] - 0s 71ms/step - loss: 0.6601 - accuracy: 0.6939 - val_loss: 0.6572 - val_accuracy: 0.6316
Epoch 6/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4824 - accuracy: 0.7579 - val_loss: 0.3831 - val_accuracy: 0.8632
Epoch 85/150
3/3 [==============================] - 0s 65ms/step - loss: 0.6485 - accuracy: 0.7071 - val_loss: 0.6423 - val_accuracy: 0.6526
Epoch 7/150
3/3 [==============================] - 0s 90ms/step - loss: 0.4624 - accuracy: 0.7711 - val_loss: 0.3827 - val_accuracy: 0.8632
Epoch 86/150
3/3 [==============================] - 0s 91ms/step - loss: 0.5284 - accuracy: 0.7599 - val_loss: 0.6290 - val_accuracy: 0.6842
Epoch 8/150
3/3 [==============================] - 0s 85ms/step - loss: 0.4710 - accuracy: 0.7895 - val_loss: 0.3822 - val_accuracy: 0.8632
Epoch 87/150
3/3 [==============================] - 0s 68ms/step - loss: 0.5836 - accuracy: 0.7309 - val_loss: 0.6168 - val_accuracy: 0.6842
Epoch 9/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4318 - accuracy: 0.8079 - val_loss: 0.3817 - val_accuracy: 0.8632
Epoch 88/150
3/3 [==============================] - 0s 81ms/step - loss: 0.5759 - accuracy: 0.7282 - val_loss: 0.6051 - val_accuracy: 0.6947
Epoch 10/150
3/3 [==============================] - 0s 92ms/step - loss: 0.4725 - accuracy: 0.7868 - val_loss: 0.3811 - val_accuracy: 0.8632
Epoch 89/150
3/3 [==============================] - 0s 74ms/step - loss: 0.5391 - accuracy: 0.7414 - val_loss: 0.5940 - val_accuracy: 0.7053
Epoch 11/150
3/3 [==============================] - 0s 61ms/step - loss: 0.4625 - accuracy: 0.7921 - val_loss: 0.3803 - val_accuracy: 0.8632
Epoch 90/150
3/3 [==============================] - 0s 69ms/step - loss: 0.5111 - accuracy: 0.7652 - val_loss: 0.5841 - val_accuracy: 0.7368
Epoch 12/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4743 - accuracy: 0.7974 - val_loss: 0.3796 - val_accuracy: 0.8632
Epoch 91/150
3/3 [==============================] - 0s 50ms/step - loss: 0.4754 - accuracy: 0.7625 - val_loss: 0.5749 - val_accuracy: 0.7474
Epoch 13/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4800 - accuracy: 0.7816 - val_loss: 0.3789 - val_accuracy: 0.8632
Epoch 92/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4580 - accuracy: 0.7889 - val_loss: 0.5665 - val_accuracy: 0.7474
Epoch 14/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4917 - accuracy: 0.8026 - val_loss: 0.3785 - val_accuracy: 0.8632
Epoch 93/150
3/3 [==============================] - 0s 68ms/step - loss: 0.5023 - accuracy: 0.7625 - val_loss: 0.5585 - val_accuracy: 0.7579
Epoch 15/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4405 - accuracy: 0.8026 - val_loss: 0.3776 - val_accuracy: 0.8632
Epoch 94/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4855 - accuracy: 0.7652 - val_loss: 0.5509 - val_accuracy: 0.7579
Epoch 16/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4801 - accuracy: 0.7816 - val_loss: 0.3768 - val_accuracy: 0.8632
Epoch 95/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4990 - accuracy: 0.7731 - val_loss: 0.5438 - val_accuracy: 0.7684
Epoch 17/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4241 - accuracy: 0.8132 - val_loss: 0.3760 - val_accuracy: 0.8632
Epoch 96/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4606 - accuracy: 0.7810 - val_loss: 0.5376 - val_accuracy: 0.7684
Epoch 18/150
3/3 [==============================] - 0s 57ms/step - loss: 0.4662 - accuracy: 0.7842 - val_loss: 0.3752 - val_accuracy: 0.8632
Epoch 97/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4260 - accuracy: 0.7889 - val_loss: 0.5316 - val_accuracy: 0.7895
Epoch 19/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4629 - accuracy: 0.8000 - val_loss: 0.3746 - val_accuracy: 0.8632
Epoch 98/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4567 - accuracy: 0.7868 - val_loss: 0.3741 - val_accuracy: 0.8632
Epoch 99/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4761 - accuracy: 0.7889 - val_loss: 0.5261 - val_accuracy: 0.7895
Epoch 20/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4593 - accuracy: 0.7995 - val_loss: 0.5207 - val_accuracy: 0.7895
Epoch 21/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4799 - accuracy: 0.7816 - val_loss: 0.3734 - val_accuracy: 0.8632
Epoch 100/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4365 - accuracy: 0.7968 - val_loss: 0.5157 - val_accuracy: 0.7895
Epoch 22/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4656 - accuracy: 0.7974 - val_loss: 0.3728 - val_accuracy: 0.8632
1/3 [=========>....................] - ETA: 0s - loss: 0.4022 - accuracy: 0.8125Epoch 101/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4315 - accuracy: 0.8127 - val_loss: 0.5109 - val_accuracy: 0.8105
Epoch 23/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4362 - accuracy: 0.8053 - val_loss: 0.3723 - val_accuracy: 0.8632
Epoch 102/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4505 - accuracy: 0.8053 - val_loss: 0.3720 - val_accuracy: 0.8632
3/3 [==============================] - 0s 71ms/step - loss: 0.4425 - accuracy: 0.8100 - val_loss: 0.5063 - val_accuracy: 0.8105
Epoch 24/150
Epoch 103/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4570 - accuracy: 0.7968 - val_loss: 0.5021 - val_accuracy: 0.8105
Epoch 25/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4754 - accuracy: 0.7789 - val_loss: 0.3715 - val_accuracy: 0.8632
Epoch 104/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4336 - accuracy: 0.8074 - val_loss: 0.4984 - val_accuracy: 0.8211
Epoch 26/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4588 - accuracy: 0.7842 - val_loss: 0.3710 - val_accuracy: 0.8632
Epoch 105/150
3/3 [==============================] - 0s 61ms/step - loss: 0.3904 - accuracy: 0.8364 - val_loss: 0.4952 - val_accuracy: 0.8105
Epoch 27/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4308 - accuracy: 0.8079 - val_loss: 0.3703 - val_accuracy: 0.8632
Epoch 106/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4489 - accuracy: 0.7711 - val_loss: 0.3697 - val_accuracy: 0.8632
Epoch 107/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4355 - accuracy: 0.8047 - val_loss: 0.4919 - val_accuracy: 0.8105
Epoch 28/150
3/3 [==============================] - 0s 57ms/step - loss: 0.4432 - accuracy: 0.7816 - val_loss: 0.3689 - val_accuracy: 0.8632
Epoch 108/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4239 - accuracy: 0.8021 - val_loss: 0.4889 - val_accuracy: 0.8105
Epoch 29/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4338 - accuracy: 0.8179 - val_loss: 0.4860 - val_accuracy: 0.8105
3/3 [==============================] - 0s 68ms/step - loss: 0.4655 - accuracy: 0.7842 - val_loss: 0.3684 - val_accuracy: 0.8632
Epoch 30/150
Epoch 109/150
3/3 [==============================] - 0s 87ms/step - loss: 0.4222 - accuracy: 0.8127 - val_loss: 0.4835 - val_accuracy: 0.8105
3/3 [==============================] - 0s 92ms/step - loss: 0.4551 - accuracy: 0.7947 - val_loss: 0.3679 - val_accuracy: 0.8632
Epoch 31/150
Epoch 110/150
3/3 [==============================] - 0s 101ms/step - loss: 0.4634 - accuracy: 0.7868 - val_loss: 0.3676 - val_accuracy: 0.8632
3/3 [==============================] - 0s 102ms/step - loss: 0.4187 - accuracy: 0.8232 - val_loss: 0.4810 - val_accuracy: 0.8105
Epoch 32/150
Epoch 111/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4132 - accuracy: 0.8153 - val_loss: 0.4786 - val_accuracy: 0.8105
Epoch 33/150
3/3 [==============================] - 0s 89ms/step - loss: 0.4352 - accuracy: 0.8000 - val_loss: 0.3673 - val_accuracy: 0.8632
Epoch 112/150
3/3 [==============================] - 0s 86ms/step - loss: 0.3796 - accuracy: 0.8391 - val_loss: 0.4766 - val_accuracy: 0.8105
Epoch 34/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4536 - accuracy: 0.7947 - val_loss: 0.3671 - val_accuracy: 0.8632
Epoch 113/150
3/3 [==============================] - 0s 73ms/step - loss: 0.3955 - accuracy: 0.8232 - val_loss: 0.4744 - val_accuracy: 0.8105
Epoch 35/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4171 - accuracy: 0.8132 - val_loss: 0.3669 - val_accuracy: 0.8632
Epoch 114/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4366 - accuracy: 0.8184 - val_loss: 0.3665 - val_accuracy: 0.8632
Epoch 115/150
3/3 [==============================] - 0s 102ms/step - loss: 0.4092 - accuracy: 0.8127 - val_loss: 0.4724 - val_accuracy: 0.8105
Epoch 36/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4194 - accuracy: 0.7921 - val_loss: 0.3659 - val_accuracy: 0.8632
Epoch 116/150
3/3 [==============================] - 0s 75ms/step - loss: 0.3969 - accuracy: 0.8179 - val_loss: 0.4703 - val_accuracy: 0.8105
Epoch 37/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4628 - accuracy: 0.7921 - val_loss: 0.3652 - val_accuracy: 0.8632
Epoch 117/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4274 - accuracy: 0.8153 - val_loss: 0.4687 - val_accuracy: 0.8211
Epoch 38/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4093 - accuracy: 0.8179 - val_loss: 0.4672 - val_accuracy: 0.8105
Epoch 39/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4409 - accuracy: 0.8132 - val_loss: 0.3647 - val_accuracy: 0.8632
Epoch 118/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4305 - accuracy: 0.8153 - val_loss: 0.4657 - val_accuracy: 0.8211
Epoch 40/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4583 - accuracy: 0.7947 - val_loss: 0.3643 - val_accuracy: 0.8632
Epoch 119/150
3/3 [==============================] - 0s 54ms/step - loss: 0.3726 - accuracy: 0.8391 - val_loss: 0.4644 - val_accuracy: 0.8105
Epoch 41/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4362 - accuracy: 0.8132 - val_loss: 0.3639 - val_accuracy: 0.8632
Epoch 120/150
3/3 [==============================] - 0s 116ms/step - loss: 0.3780 - accuracy: 0.8391 - val_loss: 0.4634 - val_accuracy: 0.8105
Epoch 42/150
3/3 [==============================] - 0s 91ms/step - loss: 0.4583 - accuracy: 0.7974 - val_loss: 0.3638 - val_accuracy: 0.8632
1/3 [=========>....................] - ETA: 0s - loss: 0.3756 - accuracy: 0.8438Epoch 121/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4058 - accuracy: 0.8232 - val_loss: 0.4622 - val_accuracy: 0.8105
Epoch 43/150
3/3 [==============================] - 0s 84ms/step - loss: 0.4415 - accuracy: 0.7921 - val_loss: 0.3635 - val_accuracy: 0.8632
Epoch 122/150
3/3 [==============================] - 0s 127ms/step - loss: 0.4012 - accuracy: 0.8179 - val_loss: 0.4611 - val_accuracy: 0.8105
Epoch 44/150
3/3 [==============================] - 0s 105ms/step - loss: 0.4396 - accuracy: 0.7921 - val_loss: 0.3634 - val_accuracy: 0.8632
Epoch 123/150
3/3 [==============================] - 0s 87ms/step - loss: 0.4428 - accuracy: 0.7895 - val_loss: 0.3631 - val_accuracy: 0.8632
Epoch 124/150
3/3 [==============================] - 0s 119ms/step - loss: 0.3878 - accuracy: 0.8364 - val_loss: 0.4602 - val_accuracy: 0.8211
Epoch 45/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4647 - accuracy: 0.7974 - val_loss: 0.3629 - val_accuracy: 0.8632
Epoch 125/150
3/3 [==============================] - 0s 63ms/step - loss: 0.3803 - accuracy: 0.8443 - val_loss: 0.4595 - val_accuracy: 0.8211
Epoch 46/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4399 - accuracy: 0.7711 - val_loss: 0.3628 - val_accuracy: 0.8632
3/3 [==============================] - 0s 58ms/step - loss: 0.4202 - accuracy: 0.8338 - val_loss: 0.4589 - val_accuracy: 0.8211
Epoch 126/150
Epoch 47/150
3/3 [==============================] - 0s 64ms/step - loss: 0.3997 - accuracy: 0.8285 - val_loss: 0.4582 - val_accuracy: 0.8211
3/3 [==============================] - 0s 62ms/step - loss: 0.4113 - accuracy: 0.8132 - val_loss: 0.3627 - val_accuracy: 0.8632
Epoch 48/150
1/3 [=========>....................] - ETA: 0s - loss: 0.3933 - accuracy: 0.8125Epoch 127/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4122 - accuracy: 0.8311 - val_loss: 0.4577 - val_accuracy: 0.8211
Epoch 49/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4779 - accuracy: 0.7868 - val_loss: 0.3625 - val_accuracy: 0.8632
Epoch 128/150
3/3 [==============================] - 0s 81ms/step - loss: 0.3818 - accuracy: 0.8338 - val_loss: 0.4574 - val_accuracy: 0.8211
Epoch 50/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4222 - accuracy: 0.8000 - val_loss: 0.3621 - val_accuracy: 0.8632
Epoch 129/150
3/3 [==============================] - 0s 72ms/step - loss: 0.3793 - accuracy: 0.8417 - val_loss: 0.4572 - val_accuracy: 0.8211
Epoch 51/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4441 - accuracy: 0.7842 - val_loss: 0.3619 - val_accuracy: 0.8632
Epoch 130/150
3/3 [==============================] - 0s 86ms/step - loss: 0.3993 - accuracy: 0.8338 - val_loss: 0.4571 - val_accuracy: 0.8211
Epoch 52/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4369 - accuracy: 0.8105 - val_loss: 0.3617 - val_accuracy: 0.8632
Epoch 131/150
3/3 [==============================] - 0s 77ms/step - loss: 0.3875 - accuracy: 0.8127 - val_loss: 0.4568 - val_accuracy: 0.8211
Epoch 53/150
3/3 [==============================] - 0s 88ms/step - loss: 0.4572 - accuracy: 0.7842 - val_loss: 0.3613 - val_accuracy: 0.8632
Epoch 132/150
3/3 [==============================] - 0s 95ms/step - loss: 0.3906 - accuracy: 0.8338 - val_loss: 0.4565 - val_accuracy: 0.8211
Epoch 54/150
3/3 [==============================] - 0s 91ms/step - loss: 0.4550 - accuracy: 0.7868 - val_loss: 0.3610 - val_accuracy: 0.8632
Epoch 133/150
3/3 [==============================] - 0s 61ms/step - loss: 0.3323 - accuracy: 0.8549 - val_loss: 0.4564 - val_accuracy: 0.8211
Epoch 55/150
3/3 [==============================] - 0s 136ms/step - loss: 0.4191 - accuracy: 0.8079 - val_loss: 0.3608 - val_accuracy: 0.8632
3/3 [==============================] - 0s 75ms/step - loss: 0.3700 - accuracy: 0.8364 - val_loss: 0.4562 - val_accuracy: 0.8211
Epoch 134/150
Epoch 56/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4283 - accuracy: 0.8079 - val_loss: 0.3608 - val_accuracy: 0.8632
Epoch 135/150
3/3 [==============================] - 0s 119ms/step - loss: 0.3704 - accuracy: 0.8391 - val_loss: 0.4559 - val_accuracy: 0.8211
Epoch 57/150
3/3 [==============================] - 0s 110ms/step - loss: 0.4235 - accuracy: 0.8105 - val_loss: 0.3609 - val_accuracy: 0.8632
Epoch 136/150
3/3 [==============================] - 0s 87ms/step - loss: 0.3787 - accuracy: 0.8496 - val_loss: 0.4558 - val_accuracy: 0.8211
Epoch 58/150
3/3 [==============================] - 0s 106ms/step - loss: 0.4063 - accuracy: 0.8342 - val_loss: 0.3607 - val_accuracy: 0.8632
Epoch 137/150
3/3 [==============================] - 0s 103ms/step - loss: 0.3679 - accuracy: 0.8417 - val_loss: 0.4557 - val_accuracy: 0.8211
Epoch 59/150
3/3 [==============================] - 0s 95ms/step - loss: 0.4459 - accuracy: 0.8158 - val_loss: 0.3606 - val_accuracy: 0.8632
Epoch 138/150
3/3 [==============================] - 0s 100ms/step - loss: 0.3681 - accuracy: 0.8391 - val_loss: 0.4557 - val_accuracy: 0.8211
Epoch 60/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4297 - accuracy: 0.8079 - val_loss: 0.3604 - val_accuracy: 0.8632
Epoch 139/150
3/3 [==============================] - 0s 95ms/step - loss: 0.3897 - accuracy: 0.8522 - val_loss: 0.4558 - val_accuracy: 0.8211
Epoch 61/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4573 - accuracy: 0.7684 - val_loss: 0.3603 - val_accuracy: 0.8632
Epoch 140/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4609 - accuracy: 0.8132 - val_loss: 0.3607 - val_accuracy: 0.8632
Epoch 141/150
3/3 [==============================] - 0s 103ms/step - loss: 0.4161 - accuracy: 0.8311 - val_loss: 0.4561 - val_accuracy: 0.8211
Epoch 62/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4127 - accuracy: 0.8184 - val_loss: 0.3606 - val_accuracy: 0.8632
Epoch 142/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4177 - accuracy: 0.8105 - val_loss: 0.3605 - val_accuracy: 0.8632
3/3 [==============================] - 0s 131ms/step - loss: 0.3694 - accuracy: 0.8496 - val_loss: 0.4563 - val_accuracy: 0.8211
Epoch 63/150
Epoch 143/150
3/3 [==============================] - 0s 73ms/step - loss: 0.3817 - accuracy: 0.8391 - val_loss: 0.4562 - val_accuracy: 0.8211
Epoch 64/150
3/3 [==============================] - 0s 106ms/step - loss: 0.4089 - accuracy: 0.8026 - val_loss: 0.3605 - val_accuracy: 0.8632
Epoch 144/150
3/3 [==============================] - 0s 105ms/step - loss: 0.3615 - accuracy: 0.8575 - val_loss: 0.4565 - val_accuracy: 0.8211
Epoch 65/150
3/3 [==============================] - 0s 97ms/step - loss: 0.4367 - accuracy: 0.8000 - val_loss: 0.3603 - val_accuracy: 0.8632
Epoch 145/150
3/3 [==============================] - 0s 59ms/step - loss: 0.3550 - accuracy: 0.8681 - val_loss: 0.4568 - val_accuracy: 0.8211
Epoch 66/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4421 - accuracy: 0.7921 - val_loss: 0.3603 - val_accuracy: 0.8632
Epoch 146/150
3/3 [==============================] - 0s 68ms/step - loss: 0.3552 - accuracy: 0.8443 - val_loss: 0.4568 - val_accuracy: 0.8211
Epoch 67/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4376 - accuracy: 0.8105 - val_loss: 0.3602 - val_accuracy: 0.8632
Epoch 147/150
3/3 [==============================] - 0s 60ms/step - loss: 0.3659 - accuracy: 0.8311 - val_loss: 0.4570 - val_accuracy: 0.8211
Epoch 68/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4359 - accuracy: 0.7974 - val_loss: 0.3602 - val_accuracy: 0.8632
Epoch 148/150
3/3 [==============================] - 0s 83ms/step - loss: 0.3520 - accuracy: 0.8628 - val_loss: 0.4572 - val_accuracy: 0.8211
Epoch 69/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4345 - accuracy: 0.8026 - val_loss: 0.3600 - val_accuracy: 0.8632
Epoch 149/150
3/3 [==============================] - 0s 64ms/step - loss: 0.3778 - accuracy: 0.8127 - val_loss: 0.4573 - val_accuracy: 0.8211
1/3 [=========>....................] - ETA: 0s - loss: 0.4493 - accuracy: 0.7891Epoch 70/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4433 - accuracy: 0.7974 - val_loss: 0.3601 - val_accuracy: 0.8632
Epoch 150/150
3/3 [==============================] - 0s 74ms/step - loss: 0.3529 - accuracy: 0.8522 - val_loss: 0.4577 - val_accuracy: 0.8211
Epoch 71/150
3/3 [==============================] - 0s 98ms/step - loss: 0.4113 - accuracy: 0.8000 - val_loss: 0.3601 - val_accuracy: 0.8632
3/3 [==============================] - 0s 85ms/step - loss: 0.3783 - accuracy: 0.8443 - val_loss: 0.4579 - val_accuracy: 0.8211
Epoch 72/150
3/3 [==============================] - 0s 53ms/step - loss: 0.3636 - accuracy: 0.8391 - val_loss: 0.4581 - val_accuracy: 0.8211
Epoch 73/150
3/3 [==============================] - 0s 39ms/step - loss: 0.3384 - accuracy: 0.8522 - val_loss: 0.4585 - val_accuracy: 0.8211
Epoch 74/150
3/3 [==============================] - 0s 44ms/step - loss: 0.3804 - accuracy: 0.8311 - val_loss: 0.4588 - val_accuracy: 0.8211
Epoch 75/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3673 - accuracy: 0.8259 - val_loss: 0.4591 - val_accuracy: 0.8211
Epoch 76/150
3/3 [==============================] - 0s 56ms/step - loss: 0.3569 - accuracy: 0.8575 - val_loss: 0.4595 - val_accuracy: 0.8211
Epoch 77/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3641 - accuracy: 0.8602 - val_loss: 0.4598 - val_accuracy: 0.8211
Epoch 78/150
3/3 [==============================] - 0s 38ms/step - loss: 0.3701 - accuracy: 0.8549 - val_loss: 0.4602 - val_accuracy: 0.8211
Epoch 79/150
3/3 [==============================] - 0s 39ms/step - loss: 0.3799 - accuracy: 0.8522 - val_loss: 0.4608 - val_accuracy: 0.8211
Epoch 80/150
3/3 [==============================] - 0s 41ms/step - loss: 0.3899 - accuracy: 0.8391 - val_loss: 0.4613 - val_accuracy: 0.8211
Epoch 81/150
3/3 [==============================] - 0s 52ms/step - loss: 0.3655 - accuracy: 0.8470 - val_loss: 0.4619 - val_accuracy: 0.8211
Epoch 82/150
3/3 [==============================] - 0s 48ms/step - loss: 0.3520 - accuracy: 0.8681 - val_loss: 0.4625 - val_accuracy: 0.8211
Epoch 83/150
3/3 [==============================] - 0s 48ms/step - loss: 0.3486 - accuracy: 0.8681 - val_loss: 0.4633 - val_accuracy: 0.8211
Epoch 84/150
3/3 [==============================] - 0s 37ms/step - loss: 0.3553 - accuracy: 0.8443 - val_loss: 0.4637 - val_accuracy: 0.8211
Epoch 85/150
3/3 [==============================] - 0s 38ms/step - loss: 0.3663 - accuracy: 0.8522 - val_loss: 0.4639 - val_accuracy: 0.8211
Epoch 86/150
3/3 [==============================] - 0s 36ms/step - loss: 0.3722 - accuracy: 0.8470 - val_loss: 0.4645 - val_accuracy: 0.8211
Epoch 87/150
3/3 [==============================] - 0s 36ms/step - loss: 0.3579 - accuracy: 0.8496 - val_loss: 0.4654 - val_accuracy: 0.8211
Epoch 88/150
3/3 [==============================] - 0s 36ms/step - loss: 0.3563 - accuracy: 0.8602 - val_loss: 0.4662 - val_accuracy: 0.8211
Epoch 89/150
3/3 [==============================] - 0s 38ms/step - loss: 0.3857 - accuracy: 0.8417 - val_loss: 0.4669 - val_accuracy: 0.8211
Epoch 90/150
3/3 [==============================] - 0s 40ms/step - loss: 0.3492 - accuracy: 0.8602 - val_loss: 0.4676 - val_accuracy: 0.8211
Epoch 91/150
3/3 [==============================] - 0s 39ms/step - loss: 0.3808 - accuracy: 0.8364 - val_loss: 0.4684 - val_accuracy: 0.8211
Epoch 92/150
3/3 [==============================] - 0s 38ms/step - loss: 0.3821 - accuracy: 0.8391 - val_loss: 0.4689 - val_accuracy: 0.8211
Epoch 93/150
3/3 [==============================] - 0s 37ms/step - loss: 0.3423 - accuracy: 0.8786 - val_loss: 0.4694 - val_accuracy: 0.8211
Epoch 94/150
3/3 [==============================] - 0s 39ms/step - loss: 0.3412 - accuracy: 0.8522 - val_loss: 0.4698 - val_accuracy: 0.8211
Epoch 95/150
3/3 [==============================] - 0s 46ms/step - loss: 0.3847 - accuracy: 0.8522 - val_loss: 0.4702 - val_accuracy: 0.8211
Epoch 96/150
3/3 [==============================] - 0s 44ms/step - loss: 0.3427 - accuracy: 0.8628 - val_loss: 0.4708 - val_accuracy: 0.8211
Epoch 97/150
3/3 [==============================] - 0s 39ms/step - loss: 0.3308 - accuracy: 0.8707 - val_loss: 0.4717 - val_accuracy: 0.8211
Epoch 98/150
3/3 [==============================] - 0s 40ms/step - loss: 0.3818 - accuracy: 0.8391 - val_loss: 0.4722 - val_accuracy: 0.8211
Epoch 99/150
3/3 [==============================] - 0s 44ms/step - loss: 0.3558 - accuracy: 0.8734 - val_loss: 0.4730 - val_accuracy: 0.8211
Epoch 100/150
3/3 [==============================] - 0s 35ms/step - loss: 0.3545 - accuracy: 0.8602 - val_loss: 0.4736 - val_accuracy: 0.8211
Epoch 101/150
3/3 [==============================] - 0s 51ms/step - loss: 0.3509 - accuracy: 0.8391 - val_loss: 0.4743 - val_accuracy: 0.8211
Epoch 102/150
3/3 [==============================] - 0s 52ms/step - loss: 0.3794 - accuracy: 0.8470 - val_loss: 0.4747 - val_accuracy: 0.8211
Epoch 103/150
3/3 [==============================] - 0s 51ms/step - loss: 0.3445 - accuracy: 0.8654 - val_loss: 0.4751 - val_accuracy: 0.8211
Epoch 104/150
3/3 [==============================] - 0s 42ms/step - loss: 0.3882 - accuracy: 0.8496 - val_loss: 0.4753 - val_accuracy: 0.8211
Epoch 105/150
3/3 [==============================] - 0s 45ms/step - loss: 0.3842 - accuracy: 0.8232 - val_loss: 0.4755 - val_accuracy: 0.8211
Epoch 106/150
3/3 [==============================] - 0s 41ms/step - loss: 0.3240 - accuracy: 0.8628 - val_loss: 0.4762 - val_accuracy: 0.8211
Epoch 107/150
3/3 [==============================] - 0s 43ms/step - loss: 0.3372 - accuracy: 0.8602 - val_loss: 0.4769 - val_accuracy: 0.8211
Epoch 108/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3397 - accuracy: 0.8470 - val_loss: 0.4774 - val_accuracy: 0.8211
Epoch 109/150
3/3 [==============================] - 0s 42ms/step - loss: 0.3219 - accuracy: 0.8628 - val_loss: 0.4779 - val_accuracy: 0.8211
Epoch 110/150
3/3 [==============================] - 0s 34ms/step - loss: 0.3358 - accuracy: 0.8575 - val_loss: 0.4783 - val_accuracy: 0.8211
Epoch 111/150
3/3 [==============================] - 0s 33ms/step - loss: 0.3365 - accuracy: 0.8839 - val_loss: 0.4789 - val_accuracy: 0.8211
Epoch 112/150
3/3 [==============================] - 0s 38ms/step - loss: 0.3185 - accuracy: 0.8549 - val_loss: 0.4793 - val_accuracy: 0.8211
Epoch 113/150
3/3 [==============================] - 0s 38ms/step - loss: 0.3624 - accuracy: 0.8654 - val_loss: 0.4801 - val_accuracy: 0.8211
Epoch 114/150
3/3 [==============================] - 0s 38ms/step - loss: 0.3727 - accuracy: 0.8496 - val_loss: 0.4805 - val_accuracy: 0.8211
Epoch 115/150
3/3 [==============================] - 0s 40ms/step - loss: 0.3484 - accuracy: 0.8681 - val_loss: 0.4809 - val_accuracy: 0.8211
Epoch 116/150
3/3 [==============================] - 0s 36ms/step - loss: 0.3619 - accuracy: 0.8628 - val_loss: 0.4813 - val_accuracy: 0.8211
Epoch 117/150
3/3 [==============================] - 0s 37ms/step - loss: 0.3593 - accuracy: 0.8549 - val_loss: 0.4816 - val_accuracy: 0.8211
Epoch 118/150
3/3 [==============================] - 0s 34ms/step - loss: 0.3308 - accuracy: 0.8707 - val_loss: 0.4822 - val_accuracy: 0.8211
Epoch 119/150
3/3 [==============================] - 0s 42ms/step - loss: 0.3368 - accuracy: 0.8602 - val_loss: 0.4831 - val_accuracy: 0.8211
Epoch 120/150
3/3 [==============================] - 0s 37ms/step - loss: 0.3715 - accuracy: 0.8470 - val_loss: 0.4835 - val_accuracy: 0.8211
Epoch 121/150
3/3 [==============================] - 0s 44ms/step - loss: 0.3488 - accuracy: 0.8654 - val_loss: 0.4839 - val_accuracy: 0.8211
Epoch 122/150
3/3 [==============================] - 0s 36ms/step - loss: 0.3640 - accuracy: 0.8575 - val_loss: 0.4843 - val_accuracy: 0.8211
Epoch 123/150
3/3 [==============================] - 0s 40ms/step - loss: 0.3537 - accuracy: 0.8470 - val_loss: 0.4848 - val_accuracy: 0.8211
Epoch 124/150
3/3 [==============================] - 0s 29ms/step - loss: 0.3500 - accuracy: 0.8470 - val_loss: 0.4853 - val_accuracy: 0.8211
Epoch 125/150
3/3 [==============================] - 0s 37ms/step - loss: 0.3477 - accuracy: 0.8522 - val_loss: 0.4860 - val_accuracy: 0.8211
Epoch 126/150
3/3 [==============================] - 0s 41ms/step - loss: 0.3464 - accuracy: 0.8575 - val_loss: 0.4869 - val_accuracy: 0.8211
Epoch 127/150
3/3 [==============================] - 0s 42ms/step - loss: 0.3200 - accuracy: 0.8654 - val_loss: 0.4879 - val_accuracy: 0.8211
Epoch 128/150
3/3 [==============================] - 0s 37ms/step - loss: 0.3200 - accuracy: 0.8602 - val_loss: 0.4883 - val_accuracy: 0.8211
Epoch 129/150
3/3 [==============================] - 0s 38ms/step - loss: 0.3182 - accuracy: 0.8628 - val_loss: 0.4887 - val_accuracy: 0.8211
Epoch 130/150
3/3 [==============================] - 0s 36ms/step - loss: 0.3178 - accuracy: 0.8734 - val_loss: 0.4894 - val_accuracy: 0.8105
Epoch 131/150
3/3 [==============================] - 0s 49ms/step - loss: 0.3337 - accuracy: 0.8707 - val_loss: 0.4896 - val_accuracy: 0.8105
Epoch 132/150
3/3 [==============================] - 0s 44ms/step - loss: 0.3518 - accuracy: 0.8522 - val_loss: 0.4902 - val_accuracy: 0.8105
Epoch 133/150
3/3 [==============================] - 0s 53ms/step - loss: 0.3336 - accuracy: 0.8602 - val_loss: 0.4907 - val_accuracy: 0.8105
Epoch 134/150
3/3 [==============================] - 0s 59ms/step - loss: 0.3117 - accuracy: 0.8865 - val_loss: 0.4908 - val_accuracy: 0.8105
Epoch 135/150
3/3 [==============================] - 0s 54ms/step - loss: 0.3532 - accuracy: 0.8602 - val_loss: 0.4909 - val_accuracy: 0.8105
Epoch 136/150
3/3 [==============================] - 0s 50ms/step - loss: 0.3400 - accuracy: 0.8575 - val_loss: 0.4916 - val_accuracy: 0.8105
Epoch 137/150
3/3 [==============================] - 0s 40ms/step - loss: 0.3250 - accuracy: 0.8734 - val_loss: 0.4918 - val_accuracy: 0.8105
Epoch 138/150
3/3 [==============================] - 0s 36ms/step - loss: 0.3548 - accuracy: 0.8654 - val_loss: 0.4926 - val_accuracy: 0.8105
Epoch 139/150
3/3 [==============================] - 0s 43ms/step - loss: 0.3235 - accuracy: 0.8654 - val_loss: 0.4931 - val_accuracy: 0.8105
Epoch 140/150
3/3 [==============================] - 0s 40ms/step - loss: 0.3349 - accuracy: 0.8654 - val_loss: 0.4939 - val_accuracy: 0.8105
Epoch 141/150
3/3 [==============================] - 0s 40ms/step - loss: 0.3379 - accuracy: 0.8654 - val_loss: 0.4945 - val_accuracy: 0.8105
Epoch 142/150
3/3 [==============================] - 0s 36ms/step - loss: 0.3452 - accuracy: 0.8681 - val_loss: 0.4953 - val_accuracy: 0.8105
Epoch 143/150
3/3 [==============================] - 0s 33ms/step - loss: 0.3459 - accuracy: 0.8549 - val_loss: 0.4963 - val_accuracy: 0.8105
Epoch 144/150
3/3 [==============================] - 0s 40ms/step - loss: 0.3665 - accuracy: 0.8734 - val_loss: 0.4972 - val_accuracy: 0.8105
Epoch 145/150
3/3 [==============================] - 0s 43ms/step - loss: 0.3389 - accuracy: 0.8496 - val_loss: 0.4982 - val_accuracy: 0.8105
Epoch 146/150
3/3 [==============================] - 0s 36ms/step - loss: 0.3362 - accuracy: 0.8681 - val_loss: 0.4990 - val_accuracy: 0.8105
Epoch 147/150
3/3 [==============================] - 0s 38ms/step - loss: 0.3496 - accuracy: 0.8602 - val_loss: 0.5002 - val_accuracy: 0.8105
Epoch 148/150
3/3 [==============================] - 0s 40ms/step - loss: 0.3440 - accuracy: 0.8654 - val_loss: 0.5013 - val_accuracy: 0.8105
Epoch 149/150
3/3 [==============================] - 0s 32ms/step - loss: 0.3342 - accuracy: 0.8628 - val_loss: 0.5020 - val_accuracy: 0.8105
Epoch 150/150
3/3 [==============================] - 0s 40ms/step - loss: 0.3393 - accuracy: 0.8707 - val_loss: 0.5027 - val_accuracy: 0.8105
2/2 [==============================] - 0s 7ms/step - loss: 0.5676 - accuracy: 0.7983
Epoch 1/150
3/3 [==============================] - 2s 222ms/step - loss: 0.8235 - accuracy: 0.5184 - val_loss: 0.6309 - val_accuracy: 0.6842
Epoch 2/150
3/3 [==============================] - 0s 35ms/step - loss: 0.7281 - accuracy: 0.6026 - val_loss: 0.6151 - val_accuracy: 0.7053
Epoch 3/150
3/3 [==============================] - 0s 38ms/step - loss: 0.7506 - accuracy: 0.5974 - val_loss: 0.6024 - val_accuracy: 0.7368
Epoch 4/150
3/3 [==============================] - 0s 42ms/step - loss: 0.6299 - accuracy: 0.6658 - val_loss: 0.5925 - val_accuracy: 0.7368
Epoch 5/150
3/3 [==============================] - 0s 36ms/step - loss: 0.6647 - accuracy: 0.6816 - val_loss: 0.5845 - val_accuracy: 0.7579
Epoch 6/150
3/3 [==============================] - 0s 39ms/step - loss: 0.6581 - accuracy: 0.6763 - val_loss: 0.5779 - val_accuracy: 0.7579
Epoch 7/150
3/3 [==============================] - 0s 36ms/step - loss: 0.6047 - accuracy: 0.7132 - val_loss: 0.5724 - val_accuracy: 0.7579
Epoch 8/150
3/3 [==============================] - 0s 39ms/step - loss: 0.5905 - accuracy: 0.7395 - val_loss: 0.5678 - val_accuracy: 0.7368
Epoch 9/150
3/3 [==============================] - 0s 40ms/step - loss: 0.5591 - accuracy: 0.7447 - val_loss: 0.5644 - val_accuracy: 0.7474
Epoch 10/150
3/3 [==============================] - 0s 39ms/step - loss: 0.5554 - accuracy: 0.7447 - val_loss: 0.5620 - val_accuracy: 0.7579
Epoch 11/150
3/3 [==============================] - 0s 48ms/step - loss: 0.5357 - accuracy: 0.7605 - val_loss: 0.5601 - val_accuracy: 0.7684
Epoch 12/150
3/3 [==============================] - 0s 62ms/step - loss: 0.5590 - accuracy: 0.7395 - val_loss: 0.5587 - val_accuracy: 0.7789
Epoch 13/150
3/3 [==============================] - 0s 52ms/step - loss: 0.5128 - accuracy: 0.7605 - val_loss: 0.5574 - val_accuracy: 0.7684
Epoch 14/150
3/3 [==============================] - 0s 61ms/step - loss: 0.5261 - accuracy: 0.7605 - val_loss: 0.5567 - val_accuracy: 0.7579
Epoch 15/150
3/3 [==============================] - 0s 56ms/step - loss: 0.5675 - accuracy: 0.7342 - val_loss: 0.5555 - val_accuracy: 0.7368
Epoch 16/150
3/3 [==============================] - 0s 46ms/step - loss: 0.5272 - accuracy: 0.7368 - val_loss: 0.5546 - val_accuracy: 0.7368
Epoch 17/150
3/3 [==============================] - 0s 51ms/step - loss: 0.5441 - accuracy: 0.7368 - val_loss: 0.5540 - val_accuracy: 0.7474
Epoch 18/150
3/3 [==============================] - 0s 47ms/step - loss: 0.5255 - accuracy: 0.7605 - val_loss: 0.5534 - val_accuracy: 0.7579
Epoch 19/150
3/3 [==============================] - 0s 42ms/step - loss: 0.5343 - accuracy: 0.7553 - val_loss: 0.5532 - val_accuracy: 0.7579
Epoch 20/150
3/3 [==============================] - 0s 53ms/step - loss: 0.5331 - accuracy: 0.7474 - val_loss: 0.5529 - val_accuracy: 0.7579
Epoch 21/150
3/3 [==============================] - 0s 66ms/step - loss: 0.5347 - accuracy: 0.7553 - val_loss: 0.5527 - val_accuracy: 0.7474
Epoch 22/150
3/3 [==============================] - 0s 54ms/step - loss: 0.5158 - accuracy: 0.7684 - val_loss: 0.5522 - val_accuracy: 0.7474
Epoch 23/150
3/3 [==============================] - 0s 56ms/step - loss: 0.5112 - accuracy: 0.7632 - val_loss: 0.5521 - val_accuracy: 0.7474
Epoch 24/150
3/3 [==============================] - 0s 61ms/step - loss: 0.5015 - accuracy: 0.7632 - val_loss: 0.5520 - val_accuracy: 0.7474
Epoch 25/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4495 - accuracy: 0.8079 - val_loss: 0.5515 - val_accuracy: 0.7474
Epoch 26/150
3/3 [==============================] - 0s 48ms/step - loss: 0.5112 - accuracy: 0.7579 - val_loss: 0.5500 - val_accuracy: 0.7474
Epoch 27/150
3/3 [==============================] - 0s 60ms/step - loss: 0.5259 - accuracy: 0.7658 - val_loss: 0.5493 - val_accuracy: 0.7368
Epoch 28/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4930 - accuracy: 0.7842 - val_loss: 0.5485 - val_accuracy: 0.7368
Epoch 29/150
3/3 [==============================] - 0s 49ms/step - loss: 0.5044 - accuracy: 0.7789 - val_loss: 0.5479 - val_accuracy: 0.7368
Epoch 30/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4984 - accuracy: 0.7711 - val_loss: 0.5467 - val_accuracy: 0.7368
Epoch 31/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4862 - accuracy: 0.7947 - val_loss: 0.5459 - val_accuracy: 0.7474
Epoch 32/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4505 - accuracy: 0.8000 - val_loss: 0.5445 - val_accuracy: 0.7474
Epoch 33/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4829 - accuracy: 0.7947 - val_loss: 0.5435 - val_accuracy: 0.7474
Epoch 34/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4758 - accuracy: 0.8184 - val_loss: 0.5426 - val_accuracy: 0.7579
Epoch 35/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4826 - accuracy: 0.7763 - val_loss: 0.5415 - val_accuracy: 0.7579
Epoch 36/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4910 - accuracy: 0.7895 - val_loss: 0.5399 - val_accuracy: 0.7579
Epoch 37/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4902 - accuracy: 0.7842 - val_loss: 0.5385 - val_accuracy: 0.7579
Epoch 38/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4600 - accuracy: 0.7868 - val_loss: 0.5368 - val_accuracy: 0.7579
Epoch 39/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4482 - accuracy: 0.8105 - val_loss: 0.5351 - val_accuracy: 0.7684
Epoch 40/150
3/3 [==============================] - 0s 50ms/step - loss: 0.4883 - accuracy: 0.7895 - val_loss: 0.5338 - val_accuracy: 0.7579
Epoch 41/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4731 - accuracy: 0.7921 - val_loss: 0.5318 - val_accuracy: 0.7579
Epoch 42/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4632 - accuracy: 0.8026 - val_loss: 0.5303 - val_accuracy: 0.7579
Epoch 43/150
3/3 [==============================] - 0s 42ms/step - loss: 0.4798 - accuracy: 0.7711 - val_loss: 0.5284 - val_accuracy: 0.7579
Epoch 44/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4609 - accuracy: 0.8132 - val_loss: 0.5266 - val_accuracy: 0.7579
Epoch 45/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4639 - accuracy: 0.7868 - val_loss: 0.5251 - val_accuracy: 0.7579
Epoch 46/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4417 - accuracy: 0.8132 - val_loss: 0.5243 - val_accuracy: 0.7684
Epoch 47/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4447 - accuracy: 0.8105 - val_loss: 0.5231 - val_accuracy: 0.7684
Epoch 48/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4708 - accuracy: 0.8132 - val_loss: 0.5218 - val_accuracy: 0.7895
Epoch 49/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4439 - accuracy: 0.8211 - val_loss: 0.5208 - val_accuracy: 0.7895
Epoch 50/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4715 - accuracy: 0.7842 - val_loss: 0.5197 - val_accuracy: 0.7895
Epoch 51/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4720 - accuracy: 0.8053 - val_loss: 0.5187 - val_accuracy: 0.7895
Epoch 52/150
3/3 [==============================] - 0s 60ms/step - loss: 0.4635 - accuracy: 0.8158 - val_loss: 0.5182 - val_accuracy: 0.8000
Epoch 53/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4060 - accuracy: 0.8158 - val_loss: 0.5176 - val_accuracy: 0.8000
Epoch 54/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4823 - accuracy: 0.7974 - val_loss: 0.5170 - val_accuracy: 0.8000
Epoch 55/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4574 - accuracy: 0.8000 - val_loss: 0.5159 - val_accuracy: 0.8000
Epoch 56/150
3/3 [==============================] - 0s 42ms/step - loss: 0.4701 - accuracy: 0.8105 - val_loss: 0.5150 - val_accuracy: 0.8000
Epoch 57/150
3/3 [==============================] - 0s 58ms/step - loss: 0.4510 - accuracy: 0.8000 - val_loss: 0.5130 - val_accuracy: 0.8000
Epoch 58/150
3/3 [==============================] - 0s 61ms/step - loss: 0.4557 - accuracy: 0.7974 - val_loss: 0.5118 - val_accuracy: 0.8000
Epoch 59/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4657 - accuracy: 0.7947 - val_loss: 0.5109 - val_accuracy: 0.8000
Epoch 60/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4333 - accuracy: 0.8000 - val_loss: 0.5095 - val_accuracy: 0.8105
Epoch 61/150
2/2 [==============================] - 0s 27ms/step - loss: 0.4247 - accuracy: 0.8186
3/3 [==============================] - 0s 67ms/step - loss: 0.4610 - accuracy: 0.7947 - val_loss: 0.5083 - val_accuracy: 0.8105
Epoch 62/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4415 - accuracy: 0.7974 - val_loss: 0.5069 - val_accuracy: 0.8105
Epoch 63/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4501 - accuracy: 0.8316 - val_loss: 0.5058 - val_accuracy: 0.8105
Epoch 64/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4499 - accuracy: 0.8211 - val_loss: 0.5044 - val_accuracy: 0.8105
Epoch 65/150
1/3 [=========>....................] - ETA: 0s - loss: 0.4354 - accuracy: 0.8125Epoch 1/150
3/3 [==============================] - 0s 58ms/step - loss: 0.4714 - accuracy: 0.7763 - val_loss: 0.5029 - val_accuracy: 0.8105
Epoch 66/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4396 - accuracy: 0.7921 - val_loss: 0.5009 - val_accuracy: 0.8105
Epoch 67/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4521 - accuracy: 0.8026 - val_loss: 0.4996 - val_accuracy: 0.8105
Epoch 68/150
3/3 [==============================] - 0s 70ms/step - loss: 0.4393 - accuracy: 0.8079 - val_loss: 0.4980 - val_accuracy: 0.8105
Epoch 69/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4675 - accuracy: 0.7868 - val_loss: 0.4966 - val_accuracy: 0.8105
Epoch 70/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4588 - accuracy: 0.8237 - val_loss: 0.4951 - val_accuracy: 0.8000
Epoch 71/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4315 - accuracy: 0.8237 - val_loss: 0.4941 - val_accuracy: 0.8000
Epoch 72/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4628 - accuracy: 0.8000 - val_loss: 0.4926 - val_accuracy: 0.8000
Epoch 73/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4067 - accuracy: 0.8184 - val_loss: 0.4912 - val_accuracy: 0.8000
Epoch 74/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4299 - accuracy: 0.8263 - val_loss: 0.4898 - val_accuracy: 0.8000
Epoch 75/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4090 - accuracy: 0.8263 - val_loss: 0.4891 - val_accuracy: 0.8000
Epoch 76/150
3/3 [==============================] - 0s 70ms/step - loss: 0.4512 - accuracy: 0.8105 - val_loss: 0.4885 - val_accuracy: 0.8000
Epoch 77/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4367 - accuracy: 0.8053 - val_loss: 0.4875 - val_accuracy: 0.8000
Epoch 78/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4571 - accuracy: 0.7947 - val_loss: 0.4867 - val_accuracy: 0.8000
Epoch 79/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4482 - accuracy: 0.8053 - val_loss: 0.4859 - val_accuracy: 0.8105
Epoch 80/150
3/3 [==============================] - 0s 61ms/step - loss: 0.4409 - accuracy: 0.8105 - val_loss: 0.4851 - val_accuracy: 0.8105
Epoch 81/150
3/3 [==============================] - 0s 69ms/step - loss: 0.3814 - accuracy: 0.8316 - val_loss: 0.4851 - val_accuracy: 0.8105
Epoch 82/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4320 - accuracy: 0.8079 - val_loss: 0.4845 - val_accuracy: 0.8105
Epoch 83/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4511 - accuracy: 0.8184 - val_loss: 0.4839 - val_accuracy: 0.8105
Epoch 84/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4384 - accuracy: 0.8132 - val_loss: 0.4835 - val_accuracy: 0.8105
Epoch 85/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4200 - accuracy: 0.8289 - val_loss: 0.4831 - val_accuracy: 0.8105
Epoch 86/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4014 - accuracy: 0.8500 - val_loss: 0.4825 - val_accuracy: 0.8105
Epoch 87/150
3/3 [==============================] - 0s 70ms/step - loss: 0.4306 - accuracy: 0.8211 - val_loss: 0.4820 - val_accuracy: 0.8105
Epoch 88/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4317 - accuracy: 0.8237 - val_loss: 0.4818 - val_accuracy: 0.8105
Epoch 89/150
3/3 [==============================] - 0s 70ms/step - loss: 0.4153 - accuracy: 0.8368 - val_loss: 0.4810 - val_accuracy: 0.8105
Epoch 90/150
3/3 [==============================] - 0s 71ms/step - loss: 0.3862 - accuracy: 0.8237 - val_loss: 0.4807 - val_accuracy: 0.8105
Epoch 91/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4573 - accuracy: 0.8237 - val_loss: 0.4800 - val_accuracy: 0.8105
Epoch 92/150
3/3 [==============================] - 0s 64ms/step - loss: 0.3959 - accuracy: 0.8342 - val_loss: 0.4793 - val_accuracy: 0.8105
Epoch 93/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4164 - accuracy: 0.8237 - val_loss: 0.4788 - val_accuracy: 0.8105
Epoch 94/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4603 - accuracy: 0.8000 - val_loss: 0.4782 - val_accuracy: 0.8105
Epoch 95/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4280 - accuracy: 0.8053 - val_loss: 0.4772 - val_accuracy: 0.8105
Epoch 96/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4271 - accuracy: 0.8158 - val_loss: 0.4771 - val_accuracy: 0.8105
Epoch 97/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4225 - accuracy: 0.8132 - val_loss: 0.4765 - val_accuracy: 0.8105
Epoch 98/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4519 - accuracy: 0.8000 - val_loss: 0.4762 - val_accuracy: 0.8105
Epoch 99/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4257 - accuracy: 0.8079 - val_loss: 0.4755 - val_accuracy: 0.8105
Epoch 100/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4049 - accuracy: 0.8368 - val_loss: 0.4752 - val_accuracy: 0.8105
Epoch 101/150
3/3 [==============================] - 6s 540ms/step - loss: 0.8878 - accuracy: 0.4737 - val_loss: 0.7005 - val_accuracy: 0.4842
Epoch 2/150
3/3 [==============================] - 0s 83ms/step - loss: 0.4269 - accuracy: 0.8105 - val_loss: 0.4748 - val_accuracy: 0.8105
Epoch 102/150
3/3 [==============================] - 0s 75ms/step - loss: 0.7958 - accuracy: 0.5289 - val_loss: 0.6728 - val_accuracy: 0.6105
Epoch 3/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4347 - accuracy: 0.8368 - val_loss: 0.4742 - val_accuracy: 0.8105
Epoch 103/150
3/3 [==============================] - 0s 76ms/step - loss: 0.7865 - accuracy: 0.5474 - val_loss: 0.6508 - val_accuracy: 0.7053
Epoch 4/150
3/3 [==============================] - 0s 81ms/step - loss: 0.3835 - accuracy: 0.8447 - val_loss: 0.4740 - val_accuracy: 0.8105
Epoch 104/150
3/3 [==============================] - 0s 87ms/step - loss: 0.6862 - accuracy: 0.6421 - val_loss: 0.6319 - val_accuracy: 0.6842
Epoch 5/150
3/3 [==============================] - 0s 60ms/step - loss: 0.4174 - accuracy: 0.8211 - val_loss: 0.4735 - val_accuracy: 0.8105
Epoch 105/150
3/3 [==============================] - 0s 72ms/step - loss: 0.6040 - accuracy: 0.7079 - val_loss: 0.6161 - val_accuracy: 0.7158
Epoch 6/150
3/3 [==============================] - 0s 76ms/step - loss: 0.3990 - accuracy: 0.8447 - val_loss: 0.4729 - val_accuracy: 0.8105
Epoch 106/150
3/3 [==============================] - 0s 59ms/step - loss: 0.6538 - accuracy: 0.6895 - val_loss: 0.6023 - val_accuracy: 0.7579
Epoch 7/150
3/3 [==============================] - 0s 66ms/step - loss: 0.3984 - accuracy: 0.8447 - val_loss: 0.4729 - val_accuracy: 0.8105
Epoch 107/150
3/3 [==============================] - 0s 83ms/step - loss: 0.6075 - accuracy: 0.6763 - val_loss: 0.5906 - val_accuracy: 0.8000
Epoch 8/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4197 - accuracy: 0.8237 - val_loss: 0.4731 - val_accuracy: 0.8105
Epoch 108/150
3/3 [==============================] - 0s 84ms/step - loss: 0.5534 - accuracy: 0.7132 - val_loss: 0.5812 - val_accuracy: 0.8105
Epoch 9/150
3/3 [==============================] - 0s 86ms/step - loss: 0.4152 - accuracy: 0.8237 - val_loss: 0.4732 - val_accuracy: 0.8000
Epoch 109/150
3/3 [==============================] - 0s 89ms/step - loss: 0.5647 - accuracy: 0.7500 - val_loss: 0.5721 - val_accuracy: 0.8000
Epoch 10/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4516 - accuracy: 0.8079 - val_loss: 0.4731 - val_accuracy: 0.8000
Epoch 110/150
3/3 [==============================] - 0s 81ms/step - loss: 0.5742 - accuracy: 0.7211 - val_loss: 0.5638 - val_accuracy: 0.8000
Epoch 11/150
3/3 [==============================] - 0s 84ms/step - loss: 0.4433 - accuracy: 0.8053 - val_loss: 0.4735 - val_accuracy: 0.8000
Epoch 111/150
3/3 [==============================] - 0s 84ms/step - loss: 0.5586 - accuracy: 0.7316 - val_loss: 0.5566 - val_accuracy: 0.8105
Epoch 12/150
3/3 [==============================] - 0s 98ms/step - loss: 0.3752 - accuracy: 0.8421 - val_loss: 0.4738 - val_accuracy: 0.8000
Epoch 112/150
3/3 [==============================] - 0s 78ms/step - loss: 0.5463 - accuracy: 0.7447 - val_loss: 0.5500 - val_accuracy: 0.8211
Epoch 13/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4271 - accuracy: 0.8237 - val_loss: 0.4740 - val_accuracy: 0.8000
Epoch 113/150
3/3 [==============================] - 0s 68ms/step - loss: 0.5146 - accuracy: 0.7421 - val_loss: 0.5439 - val_accuracy: 0.8316
Epoch 14/150
3/3 [==============================] - 0s 84ms/step - loss: 0.3968 - accuracy: 0.8316 - val_loss: 0.4737 - val_accuracy: 0.8000
Epoch 114/150
3/3 [==============================] - 0s 81ms/step - loss: 0.5455 - accuracy: 0.7316 - val_loss: 0.5379 - val_accuracy: 0.8316
Epoch 15/150
3/3 [==============================] - 0s 90ms/step - loss: 0.4401 - accuracy: 0.8158 - val_loss: 0.4737 - val_accuracy: 0.8000
Epoch 115/150
3/3 [==============================] - 0s 88ms/step - loss: 0.5683 - accuracy: 0.7395 - val_loss: 0.5323 - val_accuracy: 0.8316
Epoch 16/150
3/3 [==============================] - 0s 73ms/step - loss: 0.3977 - accuracy: 0.8421 - val_loss: 0.4740 - val_accuracy: 0.8000
Epoch 116/150
3/3 [==============================] - 0s 75ms/step - loss: 0.5116 - accuracy: 0.7789 - val_loss: 0.5267 - val_accuracy: 0.8316
Epoch 17/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4455 - accuracy: 0.8132 - val_loss: 0.4740 - val_accuracy: 0.8000
Epoch 117/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4787 - accuracy: 0.7684 - val_loss: 0.5212 - val_accuracy: 0.8526
Epoch 18/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4242 - accuracy: 0.8132 - val_loss: 0.4740 - val_accuracy: 0.7895
Epoch 118/150
3/3 [==============================] - 0s 68ms/step - loss: 0.5293 - accuracy: 0.7684 - val_loss: 0.5169 - val_accuracy: 0.8526
Epoch 19/150
3/3 [==============================] - 0s 64ms/step - loss: 0.3984 - accuracy: 0.8263 - val_loss: 0.4739 - val_accuracy: 0.7895
Epoch 119/150
3/3 [==============================] - 0s 62ms/step - loss: 0.5076 - accuracy: 0.7711 - val_loss: 0.5121 - val_accuracy: 0.8526
Epoch 20/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4334 - accuracy: 0.8158 - val_loss: 0.4736 - val_accuracy: 0.7895
Epoch 120/150
3/3 [==============================] - 0s 63ms/step - loss: 0.5154 - accuracy: 0.7632 - val_loss: 0.5077 - val_accuracy: 0.8526
Epoch 21/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4134 - accuracy: 0.8237 - val_loss: 0.4736 - val_accuracy: 0.7895
Epoch 121/150
3/3 [==============================] - 0s 74ms/step - loss: 0.5203 - accuracy: 0.7368 - val_loss: 0.5035 - val_accuracy: 0.8737
Epoch 22/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4398 - accuracy: 0.8079 - val_loss: 0.4735 - val_accuracy: 0.7895
Epoch 122/150
3/3 [==============================] - 0s 66ms/step - loss: 0.5105 - accuracy: 0.7632 - val_loss: 0.4996 - val_accuracy: 0.8737
Epoch 23/150
3/3 [==============================] - 0s 66ms/step - loss: 0.3930 - accuracy: 0.8316 - val_loss: 0.4733 - val_accuracy: 0.7895
Epoch 123/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4897 - accuracy: 0.7684 - val_loss: 0.4959 - val_accuracy: 0.8737
Epoch 24/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4171 - accuracy: 0.8289 - val_loss: 0.4733 - val_accuracy: 0.7895
Epoch 124/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4902 - accuracy: 0.7711 - val_loss: 0.4929 - val_accuracy: 0.8632
Epoch 25/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4372 - accuracy: 0.8132 - val_loss: 0.4732 - val_accuracy: 0.8000
Epoch 125/150
3/3 [==============================] - 0s 70ms/step - loss: 0.4823 - accuracy: 0.7816 - val_loss: 0.4900 - val_accuracy: 0.8632
Epoch 26/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4228 - accuracy: 0.8211 - val_loss: 0.4735 - val_accuracy: 0.8000
Epoch 126/150
3/3 [==============================] - 0s 91ms/step - loss: 0.5017 - accuracy: 0.7632 - val_loss: 0.4869 - val_accuracy: 0.8632
Epoch 27/150
3/3 [==============================] - 0s 65ms/step - loss: 0.3950 - accuracy: 0.8421 - val_loss: 0.4736 - val_accuracy: 0.8000
Epoch 127/150
3/3 [==============================] - 0s 80ms/step - loss: 0.4537 - accuracy: 0.7868 - val_loss: 0.4837 - val_accuracy: 0.8632
Epoch 28/150
3/3 [==============================] - 0s 90ms/step - loss: 0.4124 - accuracy: 0.8395 - val_loss: 0.4743 - val_accuracy: 0.8000
Epoch 128/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4841 - accuracy: 0.7763 - val_loss: 0.4805 - val_accuracy: 0.8632
Epoch 29/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4009 - accuracy: 0.8421 - val_loss: 0.4743 - val_accuracy: 0.8000
Epoch 129/150
3/3 [==============================] - 0s 93ms/step - loss: 0.4724 - accuracy: 0.7763 - val_loss: 0.4774 - val_accuracy: 0.8632
Epoch 30/150
3/3 [==============================] - 0s 94ms/step - loss: 0.4002 - accuracy: 0.8500 - val_loss: 0.4746 - val_accuracy: 0.8000
Epoch 130/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4919 - accuracy: 0.7684 - val_loss: 0.4742 - val_accuracy: 0.8737
Epoch 31/150
3/3 [==============================] - 0s 97ms/step - loss: 0.3955 - accuracy: 0.8500 - val_loss: 0.4749 - val_accuracy: 0.8000
Epoch 131/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4589 - accuracy: 0.8026 - val_loss: 0.4712 - val_accuracy: 0.8737
Epoch 32/150
3/3 [==============================] - 0s 71ms/step - loss: 0.3949 - accuracy: 0.8553 - val_loss: 0.4752 - val_accuracy: 0.8000
Epoch 132/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4614 - accuracy: 0.7947 - val_loss: 0.4680 - val_accuracy: 0.8737
Epoch 33/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4853 - accuracy: 0.7711 - val_loss: 0.4645 - val_accuracy: 0.8632
3/3 [==============================] - 0s 91ms/step - loss: 0.4162 - accuracy: 0.8316 - val_loss: 0.4753 - val_accuracy: 0.8000
Epoch 133/150
1/3 [=========>....................] - ETA: 0s - loss: 0.3466 - accuracy: 0.8828Epoch 34/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4165 - accuracy: 0.8342 - val_loss: 0.4760 - val_accuracy: 0.7789
Epoch 134/150
3/3 [==============================] - 0s 111ms/step - loss: 0.4842 - accuracy: 0.7947 - val_loss: 0.4615 - val_accuracy: 0.8632
Epoch 35/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4112 - accuracy: 0.8237 - val_loss: 0.4765 - val_accuracy: 0.7684
Epoch 135/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4099 - accuracy: 0.8368 - val_loss: 0.4766 - val_accuracy: 0.7684
3/3 [==============================] - 0s 90ms/step - loss: 0.4793 - accuracy: 0.7895 - val_loss: 0.4591 - val_accuracy: 0.8632
Epoch 136/150
Epoch 36/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4827 - accuracy: 0.7947 - val_loss: 0.4566 - val_accuracy: 0.8632
Epoch 37/150
3/3 [==============================] - 0s 109ms/step - loss: 0.3819 - accuracy: 0.8342 - val_loss: 0.4764 - val_accuracy: 0.7789
Epoch 137/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4601 - accuracy: 0.7842 - val_loss: 0.4541 - val_accuracy: 0.8632
Epoch 38/150
3/3 [==============================] - 0s 89ms/step - loss: 0.4106 - accuracy: 0.8368 - val_loss: 0.4763 - val_accuracy: 0.7789
Epoch 138/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4682 - accuracy: 0.7868 - val_loss: 0.4517 - val_accuracy: 0.8632
Epoch 39/150
3/3 [==============================] - 0s 89ms/step - loss: 0.4225 - accuracy: 0.8211 - val_loss: 0.4763 - val_accuracy: 0.7684
Epoch 139/150
3/3 [==============================] - 0s 90ms/step - loss: 0.4838 - accuracy: 0.7500 - val_loss: 0.4491 - val_accuracy: 0.8632
Epoch 40/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4446 - accuracy: 0.7868 - val_loss: 0.4464 - val_accuracy: 0.8737
Epoch 41/150
3/3 [==============================] - 0s 83ms/step - loss: 0.4259 - accuracy: 0.8211 - val_loss: 0.4763 - val_accuracy: 0.7684
Epoch 140/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4482 - accuracy: 0.7868 - val_loss: 0.4440 - val_accuracy: 0.8737
Epoch 42/150
3/3 [==============================] - 0s 66ms/step - loss: 0.3922 - accuracy: 0.8289 - val_loss: 0.4764 - val_accuracy: 0.7684
Epoch 141/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4810 - accuracy: 0.7684 - val_loss: 0.4415 - val_accuracy: 0.8737
Epoch 43/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4023 - accuracy: 0.8316 - val_loss: 0.4767 - val_accuracy: 0.7684
Epoch 142/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4733 - accuracy: 0.7711 - val_loss: 0.4388 - val_accuracy: 0.8737
Epoch 44/150
3/3 [==============================] - 0s 83ms/step - loss: 0.3933 - accuracy: 0.8500 - val_loss: 0.4771 - val_accuracy: 0.7684
Epoch 143/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4793 - accuracy: 0.7737 - val_loss: 0.4362 - val_accuracy: 0.8737
Epoch 45/150
3/3 [==============================] - 0s 70ms/step - loss: 0.3858 - accuracy: 0.8289 - val_loss: 0.4774 - val_accuracy: 0.7684
Epoch 144/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4970 - accuracy: 0.8000 - val_loss: 0.4334 - val_accuracy: 0.8737
Epoch 46/150
3/3 [==============================] - 0s 72ms/step - loss: 0.3917 - accuracy: 0.8342 - val_loss: 0.4777 - val_accuracy: 0.7789
Epoch 145/150
3/3 [==============================] - 0s 80ms/step - loss: 0.4713 - accuracy: 0.7658 - val_loss: 0.4305 - val_accuracy: 0.8737
Epoch 47/150
3/3 [==============================] - 0s 85ms/step - loss: 0.3849 - accuracy: 0.8474 - val_loss: 0.4780 - val_accuracy: 0.7789
Epoch 146/150
3/3 [==============================] - 0s 75ms/step - loss: 0.4602 - accuracy: 0.7842 - val_loss: 0.4276 - val_accuracy: 0.8737
Epoch 48/150
3/3 [==============================] - 0s 80ms/step - loss: 0.4046 - accuracy: 0.8395 - val_loss: 0.4778 - val_accuracy: 0.7789
Epoch 147/150
3/3 [==============================] - 0s 88ms/step - loss: 0.4231 - accuracy: 0.7842 - val_loss: 0.4252 - val_accuracy: 0.8737
Epoch 49/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4088 - accuracy: 0.8395 - val_loss: 0.4779 - val_accuracy: 0.7789
Epoch 148/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4477 - accuracy: 0.7921 - val_loss: 0.4229 - val_accuracy: 0.8842
Epoch 50/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4060 - accuracy: 0.8474 - val_loss: 0.4776 - val_accuracy: 0.7789
Epoch 149/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4712 - accuracy: 0.7895 - val_loss: 0.4213 - val_accuracy: 0.8842
Epoch 51/150
3/3 [==============================] - 0s 86ms/step - loss: 0.4075 - accuracy: 0.8342 - val_loss: 0.4773 - val_accuracy: 0.7789
Epoch 150/150
3/3 [==============================] - 0s 84ms/step - loss: 0.4480 - accuracy: 0.7789 - val_loss: 0.4199 - val_accuracy: 0.8842
Epoch 52/150
3/3 [==============================] - 0s 83ms/step - loss: 0.3857 - accuracy: 0.8316 - val_loss: 0.4775 - val_accuracy: 0.7789
3/3 [==============================] - 0s 49ms/step - loss: 0.4298 - accuracy: 0.7921 - val_loss: 0.4183 - val_accuracy: 0.8842
Epoch 53/150
3/3 [==============================] - 0s 35ms/step - loss: 0.4459 - accuracy: 0.8105 - val_loss: 0.4168 - val_accuracy: 0.8842
Epoch 54/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4383 - accuracy: 0.8026 - val_loss: 0.4154 - val_accuracy: 0.8737
Epoch 55/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4879 - accuracy: 0.7789 - val_loss: 0.4137 - val_accuracy: 0.8737
Epoch 56/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4697 - accuracy: 0.7816 - val_loss: 0.4121 - val_accuracy: 0.8737
Epoch 57/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4567 - accuracy: 0.7895 - val_loss: 0.4105 - val_accuracy: 0.8737
Epoch 58/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4571 - accuracy: 0.7974 - val_loss: 0.4091 - val_accuracy: 0.8737
Epoch 59/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4452 - accuracy: 0.7895 - val_loss: 0.4077 - val_accuracy: 0.8737
Epoch 60/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4687 - accuracy: 0.8053 - val_loss: 0.4062 - val_accuracy: 0.8737
Epoch 61/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4641 - accuracy: 0.7763 - val_loss: 0.4047 - val_accuracy: 0.8737
Epoch 62/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4295 - accuracy: 0.7974 - val_loss: 0.4032 - val_accuracy: 0.8737
Epoch 63/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4780 - accuracy: 0.7737 - val_loss: 0.4017 - val_accuracy: 0.8737
Epoch 64/150
3/3 [==============================] - 0s 37ms/step - loss: 0.4490 - accuracy: 0.7974 - val_loss: 0.4004 - val_accuracy: 0.8737
Epoch 65/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4317 - accuracy: 0.8105 - val_loss: 0.3989 - val_accuracy: 0.8737
Epoch 66/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4304 - accuracy: 0.7947 - val_loss: 0.3974 - val_accuracy: 0.8737
Epoch 67/150
3/3 [==============================] - 0s 36ms/step - loss: 0.4828 - accuracy: 0.7658 - val_loss: 0.3963 - val_accuracy: 0.8737
Epoch 68/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4331 - accuracy: 0.7684 - val_loss: 0.3950 - val_accuracy: 0.8737
Epoch 69/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4608 - accuracy: 0.8000 - val_loss: 0.3936 - val_accuracy: 0.8737
Epoch 70/150
3/3 [==============================] - 0s 49ms/step - loss: 0.4596 - accuracy: 0.7816 - val_loss: 0.3921 - val_accuracy: 0.8737
Epoch 71/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4426 - accuracy: 0.8053 - val_loss: 0.3903 - val_accuracy: 0.8737
Epoch 72/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4539 - accuracy: 0.7842 - val_loss: 0.3890 - val_accuracy: 0.8737
Epoch 73/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4408 - accuracy: 0.7947 - val_loss: 0.3878 - val_accuracy: 0.8737
Epoch 74/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4490 - accuracy: 0.7947 - val_loss: 0.3868 - val_accuracy: 0.8737
Epoch 75/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4213 - accuracy: 0.8184 - val_loss: 0.3859 - val_accuracy: 0.8737
Epoch 76/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4492 - accuracy: 0.8026 - val_loss: 0.3850 - val_accuracy: 0.8737
Epoch 77/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4377 - accuracy: 0.8237 - val_loss: 0.3840 - val_accuracy: 0.8737
Epoch 78/150
3/3 [==============================] - 0s 36ms/step - loss: 0.4469 - accuracy: 0.7763 - val_loss: 0.3830 - val_accuracy: 0.8737
Epoch 79/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4743 - accuracy: 0.7737 - val_loss: 0.3821 - val_accuracy: 0.8737
Epoch 80/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4338 - accuracy: 0.8000 - val_loss: 0.3810 - val_accuracy: 0.8737
Epoch 81/150
3/3 [==============================] - 0s 30ms/step - loss: 0.4397 - accuracy: 0.8026 - val_loss: 0.3798 - val_accuracy: 0.8842
Epoch 82/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4311 - accuracy: 0.7947 - val_loss: 0.3783 - val_accuracy: 0.8842
Epoch 83/150
3/3 [==============================] - 0s 34ms/step - loss: 0.4683 - accuracy: 0.7895 - val_loss: 0.3771 - val_accuracy: 0.8842
Epoch 84/150
3/3 [==============================] - 0s 32ms/step - loss: 0.4580 - accuracy: 0.7947 - val_loss: 0.3762 - val_accuracy: 0.8842
Epoch 85/150
3/3 [==============================] - 0s 36ms/step - loss: 0.4170 - accuracy: 0.8053 - val_loss: 0.3755 - val_accuracy: 0.8842
Epoch 86/150
3/3 [==============================] - 0s 30ms/step - loss: 0.4232 - accuracy: 0.8079 - val_loss: 0.3745 - val_accuracy: 0.8842
Epoch 87/150
3/3 [==============================] - 0s 29ms/step - loss: 0.4368 - accuracy: 0.8000 - val_loss: 0.3740 - val_accuracy: 0.8842
Epoch 88/150
3/3 [==============================] - 0s 33ms/step - loss: 0.4421 - accuracy: 0.7921 - val_loss: 0.3735 - val_accuracy: 0.8842
Epoch 89/150
3/3 [==============================] - 0s 31ms/step - loss: 0.4644 - accuracy: 0.8079 - val_loss: 0.3730 - val_accuracy: 0.8842
Epoch 90/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4335 - accuracy: 0.7947 - val_loss: 0.3724 - val_accuracy: 0.8842
Epoch 91/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4295 - accuracy: 0.7947 - val_loss: 0.3720 - val_accuracy: 0.8842
Epoch 92/150
3/3 [==============================] - 0s 32ms/step - loss: 0.4256 - accuracy: 0.8026 - val_loss: 0.3721 - val_accuracy: 0.8842
Epoch 93/150
3/3 [==============================] - 0s 30ms/step - loss: 0.4214 - accuracy: 0.8132 - val_loss: 0.3716 - val_accuracy: 0.8842
Epoch 94/150
3/3 [==============================] - 0s 31ms/step - loss: 0.4492 - accuracy: 0.7921 - val_loss: 0.3711 - val_accuracy: 0.8737
Epoch 95/150
3/3 [==============================] - 0s 36ms/step - loss: 0.4273 - accuracy: 0.8211 - val_loss: 0.3707 - val_accuracy: 0.8737
Epoch 96/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4386 - accuracy: 0.8211 - val_loss: 0.3703 - val_accuracy: 0.8737
Epoch 97/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4151 - accuracy: 0.8000 - val_loss: 0.3701 - val_accuracy: 0.8737
Epoch 98/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4172 - accuracy: 0.8158 - val_loss: 0.3699 - val_accuracy: 0.8737
Epoch 99/150
3/3 [==============================] - 0s 60ms/step - loss: 0.4417 - accuracy: 0.8053 - val_loss: 0.3695 - val_accuracy: 0.8842
Epoch 100/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4278 - accuracy: 0.8237 - val_loss: 0.3694 - val_accuracy: 0.8842
Epoch 101/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4721 - accuracy: 0.7868 - val_loss: 0.3691 - val_accuracy: 0.8842
Epoch 102/150
3/3 [==============================] - 0s 35ms/step - loss: 0.4348 - accuracy: 0.8158 - val_loss: 0.3688 - val_accuracy: 0.8842
Epoch 103/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4271 - accuracy: 0.7947 - val_loss: 0.3685 - val_accuracy: 0.8842
Epoch 104/150
3/3 [==============================] - 0s 32ms/step - loss: 0.4536 - accuracy: 0.7868 - val_loss: 0.3682 - val_accuracy: 0.8842
Epoch 105/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4167 - accuracy: 0.8237 - val_loss: 0.3677 - val_accuracy: 0.8842
Epoch 106/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4477 - accuracy: 0.7921 - val_loss: 0.3677 - val_accuracy: 0.8842
Epoch 107/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4308 - accuracy: 0.7816 - val_loss: 0.3674 - val_accuracy: 0.8842
Epoch 108/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4243 - accuracy: 0.7947 - val_loss: 0.3673 - val_accuracy: 0.8842
Epoch 109/150
3/3 [==============================] - 0s 29ms/step - loss: 0.4238 - accuracy: 0.8000 - val_loss: 0.3673 - val_accuracy: 0.8842
Epoch 110/150
3/3 [==============================] - 0s 28ms/step - loss: 0.4493 - accuracy: 0.7816 - val_loss: 0.3674 - val_accuracy: 0.8842
Epoch 111/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4653 - accuracy: 0.8000 - val_loss: 0.3677 - val_accuracy: 0.8842
Epoch 112/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4777 - accuracy: 0.7921 - val_loss: 0.3677 - val_accuracy: 0.8842
Epoch 113/150
3/3 [==============================] - 0s 29ms/step - loss: 0.4399 - accuracy: 0.7789 - val_loss: 0.3677 - val_accuracy: 0.8842
Epoch 114/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4045 - accuracy: 0.8342 - val_loss: 0.3672 - val_accuracy: 0.8842
Epoch 115/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4165 - accuracy: 0.8053 - val_loss: 0.3661 - val_accuracy: 0.8842
Epoch 116/150
3/3 [==============================] - 0s 31ms/step - loss: 0.4133 - accuracy: 0.8079 - val_loss: 0.3650 - val_accuracy: 0.8842
Epoch 117/150
3/3 [==============================] - 0s 39ms/step - loss: 0.3804 - accuracy: 0.8316 - val_loss: 0.3643 - val_accuracy: 0.8842
Epoch 118/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4278 - accuracy: 0.7816 - val_loss: 0.3638 - val_accuracy: 0.8842
Epoch 119/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4276 - accuracy: 0.7921 - val_loss: 0.3638 - val_accuracy: 0.8842
Epoch 120/150
3/3 [==============================] - 0s 41ms/step - loss: 0.3999 - accuracy: 0.8158 - val_loss: 0.3641 - val_accuracy: 0.8842
Epoch 121/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4026 - accuracy: 0.8026 - val_loss: 0.3645 - val_accuracy: 0.8842
Epoch 122/150
3/3 [==============================] - 0s 31ms/step - loss: 0.4267 - accuracy: 0.8158 - val_loss: 0.3648 - val_accuracy: 0.8842
Epoch 123/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4400 - accuracy: 0.8079 - val_loss: 0.3650 - val_accuracy: 0.8842
Epoch 124/150
3/3 [==============================] - 0s 37ms/step - loss: 0.4237 - accuracy: 0.7974 - val_loss: 0.3652 - val_accuracy: 0.8842
Epoch 125/150
3/3 [==============================] - 0s 38ms/step - loss: 0.3880 - accuracy: 0.8211 - val_loss: 0.3653 - val_accuracy: 0.8842
Epoch 126/150
3/3 [==============================] - 0s 39ms/step - loss: 0.3758 - accuracy: 0.8342 - val_loss: 0.3654 - val_accuracy: 0.8842
Epoch 127/150
3/3 [==============================] - 0s 30ms/step - loss: 0.4200 - accuracy: 0.8079 - val_loss: 0.3654 - val_accuracy: 0.8842
Epoch 128/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4189 - accuracy: 0.8053 - val_loss: 0.3651 - val_accuracy: 0.8842
Epoch 129/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4465 - accuracy: 0.7816 - val_loss: 0.3652 - val_accuracy: 0.8842
Epoch 130/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4289 - accuracy: 0.8211 - val_loss: 0.3648 - val_accuracy: 0.8842
Epoch 131/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4274 - accuracy: 0.7921 - val_loss: 0.3640 - val_accuracy: 0.8842
Epoch 132/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4227 - accuracy: 0.8079 - val_loss: 0.3633 - val_accuracy: 0.8842
Epoch 133/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4403 - accuracy: 0.7895 - val_loss: 0.3628 - val_accuracy: 0.8842
Epoch 134/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4309 - accuracy: 0.8000 - val_loss: 0.3629 - val_accuracy: 0.8842
Epoch 135/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4251 - accuracy: 0.8158 - val_loss: 0.3630 - val_accuracy: 0.8842
Epoch 136/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4056 - accuracy: 0.8158 - val_loss: 0.3627 - val_accuracy: 0.8842
Epoch 137/150
3/3 [==============================] - 0s 29ms/step - loss: 0.4372 - accuracy: 0.7974 - val_loss: 0.3623 - val_accuracy: 0.8842
Epoch 138/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4331 - accuracy: 0.8132 - val_loss: 0.3619 - val_accuracy: 0.8842
Epoch 139/150
3/3 [==============================] - 0s 37ms/step - loss: 0.4161 - accuracy: 0.8132 - val_loss: 0.3613 - val_accuracy: 0.8842
Epoch 140/150
3/3 [==============================] - 0s 30ms/step - loss: 0.4197 - accuracy: 0.8000 - val_loss: 0.3609 - val_accuracy: 0.8842
Epoch 141/150
3/3 [==============================] - 0s 37ms/step - loss: 0.4293 - accuracy: 0.8289 - val_loss: 0.3601 - val_accuracy: 0.8842
Epoch 142/150
3/3 [==============================] - 0s 28ms/step - loss: 0.4204 - accuracy: 0.8026 - val_loss: 0.3596 - val_accuracy: 0.8842
Epoch 143/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4062 - accuracy: 0.8184 - val_loss: 0.3596 - val_accuracy: 0.8842
Epoch 144/150
3/3 [==============================] - 0s 32ms/step - loss: 0.4117 - accuracy: 0.8000 - val_loss: 0.3593 - val_accuracy: 0.8842
Epoch 145/150
3/3 [==============================] - 0s 35ms/step - loss: 0.4400 - accuracy: 0.7895 - val_loss: 0.3591 - val_accuracy: 0.8842
Epoch 146/150
3/3 [==============================] - 0s 37ms/step - loss: 0.4062 - accuracy: 0.8211 - val_loss: 0.3591 - val_accuracy: 0.8842
Epoch 147/150
3/3 [==============================] - 0s 37ms/step - loss: 0.4305 - accuracy: 0.8263 - val_loss: 0.3594 - val_accuracy: 0.8842
Epoch 148/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4262 - accuracy: 0.7895 - val_loss: 0.3594 - val_accuracy: 0.8842
Epoch 149/150
3/3 [==============================] - 0s 29ms/step - loss: 0.4332 - accuracy: 0.7868 - val_loss: 0.3594 - val_accuracy: 0.8842
Epoch 150/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4242 - accuracy: 0.8079 - val_loss: 0.3593 - val_accuracy: 0.8842
2/2 [==============================] - 0s 13ms/step - loss: 0.4293 - accuracy: 0.8397
Epoch 1/150
3/3 [==============================] - 2s 200ms/step - loss: 0.7605 - accuracy: 0.6121 - val_loss: 0.6653 - val_accuracy: 0.6421
Epoch 2/150
3/3 [==============================] - 0s 42ms/step - loss: 0.6350 - accuracy: 0.6755 - val_loss: 0.6416 - val_accuracy: 0.6526
Epoch 3/150
3/3 [==============================] - 0s 27ms/step - loss: 0.6291 - accuracy: 0.6834 - val_loss: 0.6229 - val_accuracy: 0.6737
Epoch 4/150
3/3 [==============================] - 0s 38ms/step - loss: 0.5536 - accuracy: 0.7177 - val_loss: 0.6089 - val_accuracy: 0.6947
Epoch 5/150
3/3 [==============================] - 0s 36ms/step - loss: 0.5755 - accuracy: 0.7361 - val_loss: 0.5980 - val_accuracy: 0.7158
Epoch 6/150
3/3 [==============================] - 0s 37ms/step - loss: 0.5023 - accuracy: 0.7625 - val_loss: 0.5884 - val_accuracy: 0.7158
Epoch 7/150
3/3 [==============================] - 0s 27ms/step - loss: 0.5059 - accuracy: 0.7652 - val_loss: 0.5807 - val_accuracy: 0.7263
Epoch 8/150
3/3 [==============================] - 0s 40ms/step - loss: 0.5025 - accuracy: 0.7889 - val_loss: 0.5741 - val_accuracy: 0.7368
Epoch 9/150
3/3 [==============================] - 0s 47ms/step - loss: 0.5165 - accuracy: 0.7810 - val_loss: 0.5691 - val_accuracy: 0.7158
Epoch 10/150
3/3 [==============================] - 0s 50ms/step - loss: 0.5150 - accuracy: 0.7704 - val_loss: 0.5651 - val_accuracy: 0.7263
Epoch 11/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4820 - accuracy: 0.7731 - val_loss: 0.5616 - val_accuracy: 0.7263
Epoch 12/150
3/3 [==============================] - 0s 58ms/step - loss: 0.4544 - accuracy: 0.8074 - val_loss: 0.5588 - val_accuracy: 0.7263
Epoch 13/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4797 - accuracy: 0.7625 - val_loss: 0.5562 - val_accuracy: 0.7368
Epoch 14/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4247 - accuracy: 0.8153 - val_loss: 0.5540 - val_accuracy: 0.7368
Epoch 15/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4498 - accuracy: 0.7810 - val_loss: 0.5514 - val_accuracy: 0.7368
Epoch 16/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4447 - accuracy: 0.8179 - val_loss: 0.5490 - val_accuracy: 0.7368
Epoch 17/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4296 - accuracy: 0.8153 - val_loss: 0.5468 - val_accuracy: 0.7474
Epoch 18/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4344 - accuracy: 0.8074 - val_loss: 0.5447 - val_accuracy: 0.7474
Epoch 19/150
3/3 [==============================] - 0s 63ms/step - loss: 0.4116 - accuracy: 0.8311 - val_loss: 0.5428 - val_accuracy: 0.7579
Epoch 20/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4520 - accuracy: 0.7968 - val_loss: 0.5413 - val_accuracy: 0.7579
Epoch 21/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4184 - accuracy: 0.8206 - val_loss: 0.5397 - val_accuracy: 0.7579
Epoch 22/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4245 - accuracy: 0.8179 - val_loss: 0.5379 - val_accuracy: 0.7579
Epoch 23/150
3/3 [==============================] - 0s 61ms/step - loss: 0.4352 - accuracy: 0.8259 - val_loss: 0.5364 - val_accuracy: 0.7579
Epoch 24/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4253 - accuracy: 0.8127 - val_loss: 0.5347 - val_accuracy: 0.7579
Epoch 25/150
3/3 [==============================] - 0s 58ms/step - loss: 0.4135 - accuracy: 0.8259 - val_loss: 0.5333 - val_accuracy: 0.7579
Epoch 26/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4322 - accuracy: 0.8127 - val_loss: 0.5318 - val_accuracy: 0.7579
Epoch 27/150
3/3 [==============================] - 0s 49ms/step - loss: 0.4151 - accuracy: 0.8338 - val_loss: 0.5298 - val_accuracy: 0.7579
Epoch 28/150
3/3 [==============================] - 0s 45ms/step - loss: 0.3886 - accuracy: 0.8417 - val_loss: 0.5282 - val_accuracy: 0.7474
Epoch 29/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4248 - accuracy: 0.8179 - val_loss: 0.5267 - val_accuracy: 0.7474
Epoch 30/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4001 - accuracy: 0.8285 - val_loss: 0.5252 - val_accuracy: 0.7474
Epoch 31/150
3/3 [==============================] - 0s 50ms/step - loss: 0.3832 - accuracy: 0.8575 - val_loss: 0.5241 - val_accuracy: 0.7474
Epoch 32/150
3/3 [==============================] - 0s 49ms/step - loss: 0.4018 - accuracy: 0.8153 - val_loss: 0.5229 - val_accuracy: 0.7474
Epoch 33/150
3/3 [==============================] - 0s 49ms/step - loss: 0.4211 - accuracy: 0.7995 - val_loss: 0.5217 - val_accuracy: 0.7474
Epoch 34/150
3/3 [==============================] - 0s 61ms/step - loss: 0.3777 - accuracy: 0.8364 - val_loss: 0.5205 - val_accuracy: 0.7579
Epoch 35/150
3/3 [==============================] - 0s 49ms/step - loss: 0.3705 - accuracy: 0.8364 - val_loss: 0.5193 - val_accuracy: 0.7579
Epoch 36/150
3/3 [==============================] - 0s 52ms/step - loss: 0.3893 - accuracy: 0.8285 - val_loss: 0.5185 - val_accuracy: 0.7579
Epoch 37/150
3/3 [==============================] - 0s 45ms/step - loss: 0.3623 - accuracy: 0.8602 - val_loss: 0.5173 - val_accuracy: 0.7579
Epoch 38/150
3/3 [==============================] - 0s 49ms/step - loss: 0.3863 - accuracy: 0.8391 - val_loss: 0.5163 - val_accuracy: 0.7579
Epoch 39/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3979 - accuracy: 0.8285 - val_loss: 0.5151 - val_accuracy: 0.7579
Epoch 40/150
3/3 [==============================] - 0s 50ms/step - loss: 0.3983 - accuracy: 0.8338 - val_loss: 0.5145 - val_accuracy: 0.7579
Epoch 41/150
3/3 [==============================] - 0s 56ms/step - loss: 0.3950 - accuracy: 0.8259 - val_loss: 0.5144 - val_accuracy: 0.7579
Epoch 42/150
3/3 [==============================] - 0s 37ms/step - loss: 0.3659 - accuracy: 0.8391 - val_loss: 0.5138 - val_accuracy: 0.7579
Epoch 43/150
3/3 [==============================] - 0s 49ms/step - loss: 0.3902 - accuracy: 0.8338 - val_loss: 0.5132 - val_accuracy: 0.7579
Epoch 44/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3945 - accuracy: 0.8364 - val_loss: 0.5126 - val_accuracy: 0.7684
Epoch 45/150
3/3 [==============================] - 0s 48ms/step - loss: 0.3966 - accuracy: 0.8311 - val_loss: 0.5121 - val_accuracy: 0.7684
Epoch 46/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4255 - accuracy: 0.8206 - val_loss: 0.5117 - val_accuracy: 0.7684
Epoch 47/150
3/3 [==============================] - 0s 51ms/step - loss: 0.3505 - accuracy: 0.8391 - val_loss: 0.5115 - val_accuracy: 0.7684
Epoch 48/150
3/3 [==============================] - 0s 46ms/step - loss: 0.3473 - accuracy: 0.8496 - val_loss: 0.5114 - val_accuracy: 0.7684
Epoch 49/150
3/3 [==============================] - 0s 56ms/step - loss: 0.3871 - accuracy: 0.8391 - val_loss: 0.5114 - val_accuracy: 0.7684
Epoch 50/150
3/3 [==============================] - 0s 55ms/step - loss: 0.3655 - accuracy: 0.8470 - val_loss: 0.5103 - val_accuracy: 0.7684
Epoch 51/150
3/3 [==============================] - 0s 52ms/step - loss: 0.3630 - accuracy: 0.8470 - val_loss: 0.5094 - val_accuracy: 0.7684
Epoch 52/150
3/3 [==============================] - 0s 56ms/step - loss: 0.3680 - accuracy: 0.8443 - val_loss: 0.5082 - val_accuracy: 0.7789
Epoch 53/150
3/3 [==============================] - 0s 61ms/step - loss: 0.3823 - accuracy: 0.8496 - val_loss: 0.5072 - val_accuracy: 0.7895
Epoch 54/150
3/3 [==============================] - 0s 38ms/step - loss: 0.3655 - accuracy: 0.8364 - val_loss: 0.5064 - val_accuracy: 0.7789
Epoch 55/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3741 - accuracy: 0.8496 - val_loss: 0.5058 - val_accuracy: 0.7789
Epoch 56/150
3/3 [==============================] - 0s 51ms/step - loss: 0.3758 - accuracy: 0.8338 - val_loss: 0.5046 - val_accuracy: 0.7789
Epoch 57/150
3/3 [==============================] - 0s 45ms/step - loss: 0.3694 - accuracy: 0.8417 - val_loss: 0.5037 - val_accuracy: 0.7789
Epoch 58/150
3/3 [==============================] - 0s 79ms/step - loss: 0.3634 - accuracy: 0.8443 - val_loss: 0.5029 - val_accuracy: 0.7789
Epoch 59/150
3/3 [==============================] - 0s 79ms/step - loss: 0.3741 - accuracy: 0.8470 - val_loss: 0.5023 - val_accuracy: 0.7789
Epoch 60/150
2/2 [==============================] - 0s 11ms/step - loss: 0.3939 - accuracy: 0.8397
3/3 [==============================] - 0s 94ms/step - loss: 0.3282 - accuracy: 0.8575 - val_loss: 0.5020 - val_accuracy: 0.7789
Epoch 61/150
3/3 [==============================] - 0s 105ms/step - loss: 0.3789 - accuracy: 0.8470 - val_loss: 0.5020 - val_accuracy: 0.7789
Epoch 62/150
3/3 [==============================] - 0s 85ms/step - loss: 0.3425 - accuracy: 0.8575 - val_loss: 0.5019 - val_accuracy: 0.7789
Epoch 63/150
3/3 [==============================] - 0s 77ms/step - loss: 0.3758 - accuracy: 0.8522 - val_loss: 0.5017 - val_accuracy: 0.7789
Epoch 64/150
1/3 [=========>....................] - ETA: 0s - loss: 0.3282 - accuracy: 0.8750Epoch 1/150
3/3 [==============================] - 0s 74ms/step - loss: 0.3403 - accuracy: 0.8602 - val_loss: 0.5019 - val_accuracy: 0.7789
Epoch 65/150
3/3 [==============================] - 0s 65ms/step - loss: 0.3603 - accuracy: 0.8522 - val_loss: 0.5027 - val_accuracy: 0.7789
Epoch 66/150
3/3 [==============================] - 0s 62ms/step - loss: 0.3646 - accuracy: 0.8417 - val_loss: 0.5032 - val_accuracy: 0.7789
Epoch 67/150
3/3 [==============================] - 3s 2s/step - loss: 0.3776 - accuracy: 0.8575 - val_loss: 0.5033 - val_accuracy: 0.7789
Epoch 68/150
3/3 [==============================] - 0s 98ms/step - loss: 0.3718 - accuracy: 0.8602 - val_loss: 0.5038 - val_accuracy: 0.7789
Epoch 69/150
3/3 [==============================] - 0s 88ms/step - loss: 0.3637 - accuracy: 0.8575 - val_loss: 0.5041 - val_accuracy: 0.7789
Epoch 70/150
3/3 [==============================] - 0s 85ms/step - loss: 0.3417 - accuracy: 0.8681 - val_loss: 0.5047 - val_accuracy: 0.7789
Epoch 71/150
3/3 [==============================] - 0s 94ms/step - loss: 0.3618 - accuracy: 0.8602 - val_loss: 0.5051 - val_accuracy: 0.7789
Epoch 72/150
3/3 [==============================] - 0s 94ms/step - loss: 0.3456 - accuracy: 0.8602 - val_loss: 0.5054 - val_accuracy: 0.7789
Epoch 73/150
3/3 [==============================] - 0s 94ms/step - loss: 0.3566 - accuracy: 0.8628 - val_loss: 0.5060 - val_accuracy: 0.7789
Epoch 74/150
3/3 [==============================] - 0s 106ms/step - loss: 0.3672 - accuracy: 0.8522 - val_loss: 0.5061 - val_accuracy: 0.7789
Epoch 75/150
3/3 [==============================] - 0s 88ms/step - loss: 0.3457 - accuracy: 0.8575 - val_loss: 0.5061 - val_accuracy: 0.7789
Epoch 76/150
3/3 [==============================] - 0s 97ms/step - loss: 0.3513 - accuracy: 0.8417 - val_loss: 0.5060 - val_accuracy: 0.7789
Epoch 77/150
3/3 [==============================] - 0s 90ms/step - loss: 0.3636 - accuracy: 0.8496 - val_loss: 0.5058 - val_accuracy: 0.7789
Epoch 78/150
3/3 [==============================] - 0s 101ms/step - loss: 0.3475 - accuracy: 0.8602 - val_loss: 0.5060 - val_accuracy: 0.7895
Epoch 79/150
3/3 [==============================] - 0s 88ms/step - loss: 0.3664 - accuracy: 0.8575 - val_loss: 0.5057 - val_accuracy: 0.7895
Epoch 80/150
3/3 [==============================] - 0s 95ms/step - loss: 0.3519 - accuracy: 0.8602 - val_loss: 0.5064 - val_accuracy: 0.7895
Epoch 81/150
3/3 [==============================] - 0s 70ms/step - loss: 0.3491 - accuracy: 0.8654 - val_loss: 0.5069 - val_accuracy: 0.7895
Epoch 82/150
3/3 [==============================] - 0s 93ms/step - loss: 0.3367 - accuracy: 0.8628 - val_loss: 0.5073 - val_accuracy: 0.7895
Epoch 83/150
3/3 [==============================] - 0s 94ms/step - loss: 0.3538 - accuracy: 0.8575 - val_loss: 0.5081 - val_accuracy: 0.7895
Epoch 84/150
3/3 [==============================] - 0s 99ms/step - loss: 0.3722 - accuracy: 0.8338 - val_loss: 0.5088 - val_accuracy: 0.8000
Epoch 85/150
3/3 [==============================] - 0s 97ms/step - loss: 0.3438 - accuracy: 0.8654 - val_loss: 0.5094 - val_accuracy: 0.8000
Epoch 86/150
3/3 [==============================] - 0s 89ms/step - loss: 0.3359 - accuracy: 0.8549 - val_loss: 0.5100 - val_accuracy: 0.8000
Epoch 87/150
3/3 [==============================] - 0s 90ms/step - loss: 0.3494 - accuracy: 0.8470 - val_loss: 0.5105 - val_accuracy: 0.7895
Epoch 88/150
3/3 [==============================] - 0s 97ms/step - loss: 0.3369 - accuracy: 0.8654 - val_loss: 0.5108 - val_accuracy: 0.7895
Epoch 89/150
3/3 [==============================] - 0s 108ms/step - loss: 0.3321 - accuracy: 0.8575 - val_loss: 0.5116 - val_accuracy: 0.7895
Epoch 90/150
3/3 [==============================] - 0s 107ms/step - loss: 0.3768 - accuracy: 0.8549 - val_loss: 0.5125 - val_accuracy: 0.7895
Epoch 91/150
3/3 [==============================] - 0s 113ms/step - loss: 0.3867 - accuracy: 0.8417 - val_loss: 0.5129 - val_accuracy: 0.8105
Epoch 92/150
3/3 [==============================] - 0s 66ms/step - loss: 0.3309 - accuracy: 0.8707 - val_loss: 0.5131 - val_accuracy: 0.8105
Epoch 93/150
3/3 [==============================] - 0s 83ms/step - loss: 0.3516 - accuracy: 0.8443 - val_loss: 0.5137 - val_accuracy: 0.7895
Epoch 94/150
3/3 [==============================] - 0s 94ms/step - loss: 0.3371 - accuracy: 0.8734 - val_loss: 0.5143 - val_accuracy: 0.7895
Epoch 95/150
3/3 [==============================] - 9s 633ms/step - loss: 0.8575 - accuracy: 0.5211 - val_loss: 0.6468 - val_accuracy: 0.6842
Epoch 2/150
3/3 [==============================] - 0s 74ms/step - loss: 0.3486 - accuracy: 0.8575 - val_loss: 0.5146 - val_accuracy: 0.7895
Epoch 96/150
3/3 [==============================] - 0s 75ms/step - loss: 0.3465 - accuracy: 0.8522 - val_loss: 0.5152 - val_accuracy: 0.8105
3/3 [==============================] - 0s 83ms/step - loss: 0.6938 - accuracy: 0.6263 - val_loss: 0.6282 - val_accuracy: 0.7158
Epoch 97/150
Epoch 3/150
3/3 [==============================] - 0s 67ms/step - loss: 0.3820 - accuracy: 0.8338 - val_loss: 0.5162 - val_accuracy: 0.8105
Epoch 98/150
3/3 [==============================] - 0s 71ms/step - loss: 0.6807 - accuracy: 0.6421 - val_loss: 0.6143 - val_accuracy: 0.7263
Epoch 4/150
3/3 [==============================] - 0s 81ms/step - loss: 0.3694 - accuracy: 0.8522 - val_loss: 0.5169 - val_accuracy: 0.8105
Epoch 99/150
3/3 [==============================] - 0s 74ms/step - loss: 0.6147 - accuracy: 0.7000 - val_loss: 0.6028 - val_accuracy: 0.7474
Epoch 5/150
3/3 [==============================] - 0s 82ms/step - loss: 0.3688 - accuracy: 0.8522 - val_loss: 0.5178 - val_accuracy: 0.8105
Epoch 100/150
3/3 [==============================] - 0s 80ms/step - loss: 0.5926 - accuracy: 0.6842 - val_loss: 0.5939 - val_accuracy: 0.7263
Epoch 6/150
3/3 [==============================] - 0s 73ms/step - loss: 0.6120 - accuracy: 0.7158 - val_loss: 0.5867 - val_accuracy: 0.7158
3/3 [==============================] - 0s 94ms/step - loss: 0.3271 - accuracy: 0.8496 - val_loss: 0.5185 - val_accuracy: 0.8105
Epoch 101/150
Epoch 7/150
3/3 [==============================] - 0s 90ms/step - loss: 0.6487 - accuracy: 0.6763 - val_loss: 0.5802 - val_accuracy: 0.7263
Epoch 8/150
3/3 [==============================] - 0s 118ms/step - loss: 0.3548 - accuracy: 0.8443 - val_loss: 0.5185 - val_accuracy: 0.8105
Epoch 102/150
3/3 [==============================] - 0s 111ms/step - loss: 0.5453 - accuracy: 0.7263 - val_loss: 0.5743 - val_accuracy: 0.7368
Epoch 9/150
3/3 [==============================] - 0s 133ms/step - loss: 0.3227 - accuracy: 0.8681 - val_loss: 0.5181 - val_accuracy: 0.8105
Epoch 103/150
3/3 [==============================] - 0s 98ms/step - loss: 0.5435 - accuracy: 0.7421 - val_loss: 0.5689 - val_accuracy: 0.7263
Epoch 10/150
3/3 [==============================] - 0s 100ms/step - loss: 0.3278 - accuracy: 0.8496 - val_loss: 0.5180 - val_accuracy: 0.8105
Epoch 104/150
3/3 [==============================] - 0s 89ms/step - loss: 0.5307 - accuracy: 0.7763 - val_loss: 0.5638 - val_accuracy: 0.7368
Epoch 11/150
3/3 [==============================] - 0s 93ms/step - loss: 0.3314 - accuracy: 0.8470 - val_loss: 0.5183 - val_accuracy: 0.8105
Epoch 105/150
3/3 [==============================] - 0s 80ms/step - loss: 0.5372 - accuracy: 0.7763 - val_loss: 0.5588 - val_accuracy: 0.7579
Epoch 12/150
3/3 [==============================] - 0s 93ms/step - loss: 0.3568 - accuracy: 0.8786 - val_loss: 0.5181 - val_accuracy: 0.8105
Epoch 106/150
3/3 [==============================] - 0s 86ms/step - loss: 0.5135 - accuracy: 0.7447 - val_loss: 0.5547 - val_accuracy: 0.7684
Epoch 13/150
3/3 [==============================] - 0s 98ms/step - loss: 0.3400 - accuracy: 0.8707 - val_loss: 0.5179 - val_accuracy: 0.8000
Epoch 107/150
3/3 [==============================] - 0s 80ms/step - loss: 0.5171 - accuracy: 0.7658 - val_loss: 0.5504 - val_accuracy: 0.7684
1/3 [=========>....................] - ETA: 0s - loss: 0.3313 - accuracy: 0.8672Epoch 14/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4955 - accuracy: 0.7868 - val_loss: 0.5463 - val_accuracy: 0.7789
Epoch 15/150
3/3 [==============================] - 0s 123ms/step - loss: 0.3568 - accuracy: 0.8602 - val_loss: 0.5179 - val_accuracy: 0.8000
Epoch 108/150
3/3 [==============================] - 0s 79ms/step - loss: 0.5012 - accuracy: 0.7579 - val_loss: 0.5424 - val_accuracy: 0.7789
Epoch 16/150
3/3 [==============================] - 0s 83ms/step - loss: 0.3160 - accuracy: 0.8865 - val_loss: 0.5180 - val_accuracy: 0.8000
Epoch 109/150
3/3 [==============================] - 0s 85ms/step - loss: 0.5255 - accuracy: 0.7579 - val_loss: 0.5385 - val_accuracy: 0.7789
Epoch 17/150
3/3 [==============================] - 0s 90ms/step - loss: 0.3498 - accuracy: 0.8522 - val_loss: 0.5183 - val_accuracy: 0.8000
Epoch 110/150
3/3 [==============================] - 0s 93ms/step - loss: 0.4898 - accuracy: 0.7842 - val_loss: 0.5346 - val_accuracy: 0.7684
Epoch 18/150
3/3 [==============================] - 0s 99ms/step - loss: 0.3573 - accuracy: 0.8681 - val_loss: 0.5195 - val_accuracy: 0.8000
Epoch 111/150
3/3 [==============================] - 0s 105ms/step - loss: 0.5002 - accuracy: 0.7658 - val_loss: 0.5317 - val_accuracy: 0.7895
Epoch 19/150
3/3 [==============================] - 0s 108ms/step - loss: 0.3559 - accuracy: 0.8707 - val_loss: 0.5207 - val_accuracy: 0.8000
Epoch 112/150
3/3 [==============================] - 0s 123ms/step - loss: 0.5133 - accuracy: 0.7789 - val_loss: 0.5289 - val_accuracy: 0.8000
Epoch 20/150
3/3 [==============================] - 0s 120ms/step - loss: 0.3407 - accuracy: 0.8602 - val_loss: 0.5213 - val_accuracy: 0.8000
Epoch 113/150
3/3 [==============================] - 0s 105ms/step - loss: 0.4857 - accuracy: 0.7842 - val_loss: 0.5267 - val_accuracy: 0.8000
Epoch 21/150
3/3 [==============================] - 0s 120ms/step - loss: 0.3490 - accuracy: 0.8654 - val_loss: 0.5222 - val_accuracy: 0.8000
Epoch 114/150
3/3 [==============================] - 0s 101ms/step - loss: 0.5071 - accuracy: 0.7921 - val_loss: 0.5241 - val_accuracy: 0.8000
Epoch 22/150
3/3 [==============================] - 0s 94ms/step - loss: 0.3474 - accuracy: 0.8522 - val_loss: 0.5234 - val_accuracy: 0.8000
Epoch 115/150
3/3 [==============================] - 0s 84ms/step - loss: 0.4841 - accuracy: 0.7868 - val_loss: 0.5221 - val_accuracy: 0.8000
Epoch 23/150
3/3 [==============================] - 0s 99ms/step - loss: 0.3375 - accuracy: 0.8628 - val_loss: 0.5239 - val_accuracy: 0.8000
Epoch 116/150
3/3 [==============================] - 0s 81ms/step - loss: 0.5022 - accuracy: 0.7947 - val_loss: 0.5201 - val_accuracy: 0.8000
Epoch 24/150
3/3 [==============================] - 0s 101ms/step - loss: 0.3113 - accuracy: 0.8628 - val_loss: 0.5239 - val_accuracy: 0.8000
Epoch 117/150
3/3 [==============================] - 0s 88ms/step - loss: 0.4717 - accuracy: 0.7921 - val_loss: 0.5177 - val_accuracy: 0.8000
Epoch 25/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4415 - accuracy: 0.8184 - val_loss: 0.5154 - val_accuracy: 0.8000
Epoch 26/150
3/3 [==============================] - 0s 97ms/step - loss: 0.3156 - accuracy: 0.8681 - val_loss: 0.5239 - val_accuracy: 0.8000
Epoch 118/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4897 - accuracy: 0.7895 - val_loss: 0.5129 - val_accuracy: 0.8000
Epoch 27/150
3/3 [==============================] - 0s 89ms/step - loss: 0.3380 - accuracy: 0.8734 - val_loss: 0.5242 - val_accuracy: 0.8000
Epoch 119/150
3/3 [==============================] - 0s 96ms/step - loss: 0.4518 - accuracy: 0.8132 - val_loss: 0.5111 - val_accuracy: 0.8000
Epoch 28/150
3/3 [==============================] - 0s 101ms/step - loss: 0.3231 - accuracy: 0.8654 - val_loss: 0.5246 - val_accuracy: 0.8105
Epoch 120/150
3/3 [==============================] - 0s 96ms/step - loss: 0.4500 - accuracy: 0.8184 - val_loss: 0.5090 - val_accuracy: 0.8000
Epoch 29/150
3/3 [==============================] - 0s 99ms/step - loss: 0.3365 - accuracy: 0.8496 - val_loss: 0.5245 - val_accuracy: 0.8105
Epoch 121/150
3/3 [==============================] - 0s 105ms/step - loss: 0.4408 - accuracy: 0.8053 - val_loss: 0.5072 - val_accuracy: 0.8000
Epoch 30/150
3/3 [==============================] - 0s 126ms/step - loss: 0.3408 - accuracy: 0.8522 - val_loss: 0.5252 - val_accuracy: 0.8105
Epoch 122/150
3/3 [==============================] - 0s 101ms/step - loss: 0.4572 - accuracy: 0.8237 - val_loss: 0.5052 - val_accuracy: 0.8000
Epoch 31/150
3/3 [==============================] - 0s 99ms/step - loss: 0.3548 - accuracy: 0.8681 - val_loss: 0.5259 - val_accuracy: 0.8105
Epoch 123/150
3/3 [==============================] - 0s 86ms/step - loss: 0.4661 - accuracy: 0.8053 - val_loss: 0.5033 - val_accuracy: 0.8000
Epoch 32/150
3/3 [==============================] - 0s 90ms/step - loss: 0.3272 - accuracy: 0.8707 - val_loss: 0.5265 - val_accuracy: 0.8105
Epoch 124/150
3/3 [==============================] - 0s 97ms/step - loss: 0.4595 - accuracy: 0.8053 - val_loss: 0.5017 - val_accuracy: 0.7895
Epoch 33/150
3/3 [==============================] - 0s 110ms/step - loss: 0.3346 - accuracy: 0.8496 - val_loss: 0.5272 - val_accuracy: 0.8105
Epoch 125/150
3/3 [==============================] - 0s 99ms/step - loss: 0.4604 - accuracy: 0.7947 - val_loss: 0.5007 - val_accuracy: 0.8000
Epoch 34/150
3/3 [==============================] - 0s 108ms/step - loss: 0.3495 - accuracy: 0.8549 - val_loss: 0.5274 - val_accuracy: 0.8105
Epoch 126/150
3/3 [==============================] - 0s 110ms/step - loss: 0.4613 - accuracy: 0.7921 - val_loss: 0.4996 - val_accuracy: 0.7895
Epoch 35/150
3/3 [==============================] - 0s 102ms/step - loss: 0.3256 - accuracy: 0.8654 - val_loss: 0.5279 - val_accuracy: 0.8105
Epoch 127/150
3/3 [==============================] - 0s 86ms/step - loss: 0.4592 - accuracy: 0.8000 - val_loss: 0.4981 - val_accuracy: 0.7895
Epoch 36/150
3/3 [==============================] - 0s 80ms/step - loss: 0.4800 - accuracy: 0.7947 - val_loss: 0.4962 - val_accuracy: 0.7895
Epoch 37/150
3/3 [==============================] - 0s 108ms/step - loss: 0.3320 - accuracy: 0.8760 - val_loss: 0.5283 - val_accuracy: 0.8105
Epoch 128/150
3/3 [==============================] - 0s 106ms/step - loss: 0.4652 - accuracy: 0.8079 - val_loss: 0.4945 - val_accuracy: 0.7895
Epoch 38/150
3/3 [==============================] - 0s 105ms/step - loss: 0.3630 - accuracy: 0.8496 - val_loss: 0.5284 - val_accuracy: 0.8105
Epoch 129/150
3/3 [==============================] - 0s 64ms/step - loss: 0.3303 - accuracy: 0.8654 - val_loss: 0.5283 - val_accuracy: 0.8105
Epoch 130/150
3/3 [==============================] - 0s 94ms/step - loss: 0.4496 - accuracy: 0.8026 - val_loss: 0.4929 - val_accuracy: 0.7895
Epoch 39/150
3/3 [==============================] - 0s 88ms/step - loss: 0.3022 - accuracy: 0.8945 - val_loss: 0.5284 - val_accuracy: 0.8105
Epoch 131/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4650 - accuracy: 0.7974 - val_loss: 0.4914 - val_accuracy: 0.7895
1/3 [=========>....................] - ETA: 0s - loss: 0.2983 - accuracy: 0.8828Epoch 40/150
3/3 [==============================] - 0s 107ms/step - loss: 0.3306 - accuracy: 0.8707 - val_loss: 0.5288 - val_accuracy: 0.8105
Epoch 132/150
3/3 [==============================] - 0s 99ms/step - loss: 0.4704 - accuracy: 0.7921 - val_loss: 0.4896 - val_accuracy: 0.7895
Epoch 41/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4508 - accuracy: 0.8026 - val_loss: 0.4878 - val_accuracy: 0.7895
Epoch 42/150
3/3 [==============================] - 0s 91ms/step - loss: 0.3318 - accuracy: 0.8813 - val_loss: 0.5285 - val_accuracy: 0.8105
Epoch 133/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4898 - accuracy: 0.8000 - val_loss: 0.4861 - val_accuracy: 0.8000
Epoch 43/150
3/3 [==============================] - 0s 79ms/step - loss: 0.3090 - accuracy: 0.8575 - val_loss: 0.5285 - val_accuracy: 0.8105
Epoch 134/150
3/3 [==============================] - 0s 73ms/step - loss: 0.3480 - accuracy: 0.8681 - val_loss: 0.5291 - val_accuracy: 0.8105
Epoch 135/150
3/3 [==============================] - 0s 83ms/step - loss: 0.4567 - accuracy: 0.8158 - val_loss: 0.4844 - val_accuracy: 0.8000
Epoch 44/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4449 - accuracy: 0.8237 - val_loss: 0.4827 - val_accuracy: 0.8000
Epoch 45/150
3/3 [==============================] - 0s 80ms/step - loss: 0.3287 - accuracy: 0.8575 - val_loss: 0.5300 - val_accuracy: 0.8105
Epoch 136/150
3/3 [==============================] - 0s 84ms/step - loss: 0.4801 - accuracy: 0.8211 - val_loss: 0.4816 - val_accuracy: 0.8000
Epoch 46/150
3/3 [==============================] - 0s 86ms/step - loss: 0.3539 - accuracy: 0.8602 - val_loss: 0.5308 - val_accuracy: 0.8105
Epoch 137/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4259 - accuracy: 0.8079 - val_loss: 0.4804 - val_accuracy: 0.8000
Epoch 47/150
3/3 [==============================] - 0s 82ms/step - loss: 0.3370 - accuracy: 0.8522 - val_loss: 0.5311 - val_accuracy: 0.8105
Epoch 138/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4611 - accuracy: 0.8000 - val_loss: 0.4791 - val_accuracy: 0.8000
Epoch 48/150
3/3 [==============================] - 0s 79ms/step - loss: 0.3466 - accuracy: 0.8602 - val_loss: 0.5312 - val_accuracy: 0.8105
Epoch 139/150
3/3 [==============================] - 0s 84ms/step - loss: 0.4388 - accuracy: 0.8053 - val_loss: 0.4783 - val_accuracy: 0.8000
Epoch 49/150
3/3 [==============================] - 0s 83ms/step - loss: 0.3387 - accuracy: 0.8628 - val_loss: 0.5311 - val_accuracy: 0.8105
Epoch 140/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4727 - accuracy: 0.7895 - val_loss: 0.4781 - val_accuracy: 0.8000
Epoch 50/150
3/3 [==============================] - 0s 84ms/step - loss: 0.3297 - accuracy: 0.8654 - val_loss: 0.5317 - val_accuracy: 0.8105
Epoch 141/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4257 - accuracy: 0.8263 - val_loss: 0.4775 - val_accuracy: 0.8000
Epoch 51/150
3/3 [==============================] - 0s 89ms/step - loss: 0.3288 - accuracy: 0.8654 - val_loss: 0.5325 - val_accuracy: 0.8105
Epoch 142/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4345 - accuracy: 0.8289 - val_loss: 0.4771 - val_accuracy: 0.8000
Epoch 52/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4525 - accuracy: 0.8158 - val_loss: 0.4766 - val_accuracy: 0.8000
Epoch 53/150
3/3 [==============================] - 0s 129ms/step - loss: 0.3003 - accuracy: 0.8654 - val_loss: 0.5334 - val_accuracy: 0.8105
Epoch 143/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4379 - accuracy: 0.8132 - val_loss: 0.4759 - val_accuracy: 0.8000
Epoch 54/150
3/3 [==============================] - 0s 90ms/step - loss: 0.3438 - accuracy: 0.8470 - val_loss: 0.5339 - val_accuracy: 0.8105
Epoch 144/150
3/3 [==============================] - 0s 93ms/step - loss: 0.4417 - accuracy: 0.8079 - val_loss: 0.4754 - val_accuracy: 0.8000
Epoch 55/150
3/3 [==============================] - 0s 78ms/step - loss: 0.3253 - accuracy: 0.8602 - val_loss: 0.5342 - val_accuracy: 0.8105
Epoch 145/150
3/3 [==============================] - 0s 93ms/step - loss: 0.4204 - accuracy: 0.8342 - val_loss: 0.4744 - val_accuracy: 0.8000
Epoch 56/150
3/3 [==============================] - 0s 92ms/step - loss: 0.3369 - accuracy: 0.8707 - val_loss: 0.5348 - val_accuracy: 0.8105
Epoch 146/150
3/3 [==============================] - 0s 67ms/step - loss: 0.4069 - accuracy: 0.8421 - val_loss: 0.4732 - val_accuracy: 0.8000
Epoch 57/150
3/3 [==============================] - 0s 76ms/step - loss: 0.3468 - accuracy: 0.8654 - val_loss: 0.5354 - val_accuracy: 0.8105
Epoch 147/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4402 - accuracy: 0.8026 - val_loss: 0.4717 - val_accuracy: 0.8000
Epoch 58/150
3/3 [==============================] - 0s 95ms/step - loss: 0.2968 - accuracy: 0.8839 - val_loss: 0.5359 - val_accuracy: 0.8105
Epoch 148/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4109 - accuracy: 0.8158 - val_loss: 0.4703 - val_accuracy: 0.8000
Epoch 59/150
3/3 [==============================] - 0s 87ms/step - loss: 0.3071 - accuracy: 0.8865 - val_loss: 0.5365 - val_accuracy: 0.8105
Epoch 149/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4122 - accuracy: 0.8263 - val_loss: 0.4693 - val_accuracy: 0.8000
Epoch 60/150
3/3 [==============================] - 0s 87ms/step - loss: 0.3100 - accuracy: 0.8734 - val_loss: 0.5376 - val_accuracy: 0.8105
Epoch 150/150
3/3 [==============================] - 0s 65ms/step - loss: 0.4216 - accuracy: 0.8289 - val_loss: 0.4682 - val_accuracy: 0.8000
Epoch 61/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4177 - accuracy: 0.8263 - val_loss: 0.4668 - val_accuracy: 0.8000
Epoch 62/150
3/3 [==============================] - 0s 84ms/step - loss: 0.3354 - accuracy: 0.8549 - val_loss: 0.5385 - val_accuracy: 0.8105
3/3 [==============================] - 0s 72ms/step - loss: 0.4231 - accuracy: 0.8289 - val_loss: 0.4654 - val_accuracy: 0.8000
Epoch 63/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4306 - accuracy: 0.8184 - val_loss: 0.4647 - val_accuracy: 0.8000
Epoch 64/150
2/2 [==============================] - 0s 12ms/step - loss: 0.5726 - accuracy: 0.7689
3/3 [==============================] - 0s 65ms/step - loss: 0.4322 - accuracy: 0.8105 - val_loss: 0.4639 - val_accuracy: 0.8000
Epoch 65/150
3/3 [==============================] - 0s 73ms/step - loss: 0.3951 - accuracy: 0.8237 - val_loss: 0.4634 - val_accuracy: 0.8000
Epoch 66/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4497 - accuracy: 0.8132 - val_loss: 0.4625 - val_accuracy: 0.8000
Epoch 67/150
3/3 [==============================] - 0s 64ms/step - loss: 0.4226 - accuracy: 0.8237 - val_loss: 0.4622 - val_accuracy: 0.8000
Epoch 68/150
1/3 [=========>....................] - ETA: 0s - loss: 0.3953 - accuracy: 0.8438Epoch 1/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4318 - accuracy: 0.8211 - val_loss: 0.4619 - val_accuracy: 0.8000
Epoch 69/150
3/3 [==============================] - 0s 67ms/step - loss: 0.3792 - accuracy: 0.8526 - val_loss: 0.4617 - val_accuracy: 0.8000
Epoch 70/150
3/3 [==============================] - 0s 76ms/step - loss: 0.3913 - accuracy: 0.8263 - val_loss: 0.4616 - val_accuracy: 0.7895
Epoch 71/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4258 - accuracy: 0.8342 - val_loss: 0.4617 - val_accuracy: 0.7895
Epoch 72/150
3/3 [==============================] - 0s 92ms/step - loss: 0.4567 - accuracy: 0.8342 - val_loss: 0.4614 - val_accuracy: 0.7895
Epoch 73/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4098 - accuracy: 0.8368 - val_loss: 0.4608 - val_accuracy: 0.7895
Epoch 74/150
3/3 [==============================] - 0s 62ms/step - loss: 0.3935 - accuracy: 0.8421 - val_loss: 0.4605 - val_accuracy: 0.8000
Epoch 75/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4022 - accuracy: 0.8395 - val_loss: 0.4604 - val_accuracy: 0.8000
Epoch 76/150
3/3 [==============================] - 0s 102ms/step - loss: 0.4482 - accuracy: 0.8184 - val_loss: 0.4605 - val_accuracy: 0.8000
Epoch 77/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4139 - accuracy: 0.8158 - val_loss: 0.4601 - val_accuracy: 0.8000
Epoch 78/150
3/3 [==============================] - 0s 83ms/step - loss: 0.4272 - accuracy: 0.8184 - val_loss: 0.4599 - val_accuracy: 0.8000
Epoch 79/150
3/3 [==============================] - 0s 87ms/step - loss: 0.4337 - accuracy: 0.8237 - val_loss: 0.4596 - val_accuracy: 0.7895
Epoch 80/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4119 - accuracy: 0.8395 - val_loss: 0.4593 - val_accuracy: 0.7895
Epoch 81/150
3/3 [==============================] - 0s 83ms/step - loss: 0.4070 - accuracy: 0.8184 - val_loss: 0.4585 - val_accuracy: 0.7895
Epoch 82/150
3/3 [==============================] - 0s 88ms/step - loss: 0.4574 - accuracy: 0.8105 - val_loss: 0.4580 - val_accuracy: 0.7895
Epoch 83/150
3/3 [==============================] - 0s 70ms/step - loss: 0.4451 - accuracy: 0.8053 - val_loss: 0.4580 - val_accuracy: 0.7895
Epoch 84/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4044 - accuracy: 0.8211 - val_loss: 0.4577 - val_accuracy: 0.7895
Epoch 85/150
3/3 [==============================] - 0s 50ms/step - loss: 0.4118 - accuracy: 0.8395 - val_loss: 0.4574 - val_accuracy: 0.7895
Epoch 86/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4448 - accuracy: 0.8289 - val_loss: 0.4573 - val_accuracy: 0.7895
Epoch 87/150
3/3 [==============================] - 0s 72ms/step - loss: 0.4250 - accuracy: 0.8105 - val_loss: 0.4579 - val_accuracy: 0.7895
Epoch 88/150
3/3 [==============================] - 0s 92ms/step - loss: 0.4022 - accuracy: 0.8342 - val_loss: 0.4581 - val_accuracy: 0.7895
Epoch 89/150
3/3 [==============================] - 0s 80ms/step - loss: 0.4107 - accuracy: 0.8316 - val_loss: 0.4587 - val_accuracy: 0.7895
Epoch 90/150
3/3 [==============================] - 0s 82ms/step - loss: 0.3940 - accuracy: 0.8342 - val_loss: 0.4590 - val_accuracy: 0.7895
Epoch 91/150
3/3 [==============================] - 0s 84ms/step - loss: 0.3874 - accuracy: 0.8526 - val_loss: 0.4591 - val_accuracy: 0.7895
Epoch 92/150
3/3 [==============================] - 0s 80ms/step - loss: 0.4106 - accuracy: 0.8421 - val_loss: 0.4592 - val_accuracy: 0.7895
Epoch 93/150
3/3 [==============================] - 0s 79ms/step - loss: 0.4028 - accuracy: 0.8263 - val_loss: 0.4592 - val_accuracy: 0.7895
Epoch 94/150
3/3 [==============================] - 0s 119ms/step - loss: 0.4199 - accuracy: 0.8289 - val_loss: 0.4592 - val_accuracy: 0.7895
Epoch 95/150
3/3 [==============================] - 0s 93ms/step - loss: 0.4064 - accuracy: 0.8395 - val_loss: 0.4591 - val_accuracy: 0.7895
Epoch 96/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4012 - accuracy: 0.8368 - val_loss: 0.4593 - val_accuracy: 0.7895
Epoch 97/150
3/3 [==============================] - 0s 90ms/step - loss: 0.3815 - accuracy: 0.8605 - val_loss: 0.4592 - val_accuracy: 0.7895
Epoch 98/150
3/3 [==============================] - 0s 90ms/step - loss: 0.4258 - accuracy: 0.8342 - val_loss: 0.4599 - val_accuracy: 0.7895
Epoch 99/150
3/3 [==============================] - 0s 86ms/step - loss: 0.4218 - accuracy: 0.8289 - val_loss: 0.4602 - val_accuracy: 0.7895
Epoch 100/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4204 - accuracy: 0.8263 - val_loss: 0.4601 - val_accuracy: 0.7895
Epoch 101/150
3/3 [==============================] - 0s 76ms/step - loss: 0.3941 - accuracy: 0.8500 - val_loss: 0.4601 - val_accuracy: 0.7895
Epoch 102/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4180 - accuracy: 0.8579 - val_loss: 0.4603 - val_accuracy: 0.7895
Epoch 103/150
3/3 [==============================] - 0s 87ms/step - loss: 0.3931 - accuracy: 0.8316 - val_loss: 0.4609 - val_accuracy: 0.7895
Epoch 104/150
3/3 [==============================] - 0s 105ms/step - loss: 0.4050 - accuracy: 0.8368 - val_loss: 0.4612 - val_accuracy: 0.7895
Epoch 105/150
3/3 [==============================] - 7s 619ms/step - loss: 0.7666 - accuracy: 0.6079 - val_loss: 0.6662 - val_accuracy: 0.5895
Epoch 2/150
3/3 [==============================] - 0s 90ms/step - loss: 0.3934 - accuracy: 0.8395 - val_loss: 0.4615 - val_accuracy: 0.7895
Epoch 106/150
3/3 [==============================] - 0s 96ms/step - loss: 0.6377 - accuracy: 0.6553 - val_loss: 0.6318 - val_accuracy: 0.6211
Epoch 3/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4234 - accuracy: 0.8053 - val_loss: 0.4619 - val_accuracy: 0.7895
Epoch 107/150
3/3 [==============================] - 0s 98ms/step - loss: 0.6915 - accuracy: 0.6605 - val_loss: 0.6073 - val_accuracy: 0.6421
Epoch 4/150
3/3 [==============================] - 0s 52ms/step - loss: 0.5795 - accuracy: 0.7132 - val_loss: 0.5869 - val_accuracy: 0.7053
Epoch 5/150
3/3 [==============================] - 0s 113ms/step - loss: 0.4082 - accuracy: 0.8474 - val_loss: 0.4621 - val_accuracy: 0.7895
Epoch 108/150
3/3 [==============================] - 0s 98ms/step - loss: 0.5757 - accuracy: 0.7000 - val_loss: 0.5703 - val_accuracy: 0.7579
Epoch 6/150
3/3 [==============================] - 0s 100ms/step - loss: 0.3885 - accuracy: 0.8184 - val_loss: 0.4623 - val_accuracy: 0.7895
Epoch 109/150
3/3 [==============================] - 0s 81ms/step - loss: 0.5323 - accuracy: 0.7421 - val_loss: 0.5556 - val_accuracy: 0.7579
Epoch 7/150
3/3 [==============================] - 0s 97ms/step - loss: 0.3869 - accuracy: 0.8500 - val_loss: 0.4625 - val_accuracy: 0.7895
Epoch 110/150
3/3 [==============================] - 0s 96ms/step - loss: 0.5409 - accuracy: 0.7421 - val_loss: 0.5436 - val_accuracy: 0.7789
Epoch 8/150
3/3 [==============================] - 0s 94ms/step - loss: 0.3900 - accuracy: 0.8474 - val_loss: 0.4628 - val_accuracy: 0.7895
Epoch 111/150
3/3 [==============================] - 0s 98ms/step - loss: 0.5795 - accuracy: 0.7237 - val_loss: 0.5337 - val_accuracy: 0.7895
Epoch 9/150
3/3 [==============================] - 0s 110ms/step - loss: 0.3972 - accuracy: 0.8368 - val_loss: 0.4627 - val_accuracy: 0.7895
Epoch 112/150
3/3 [==============================] - 0s 120ms/step - loss: 0.5161 - accuracy: 0.7553 - val_loss: 0.5246 - val_accuracy: 0.8105
Epoch 10/150
3/3 [==============================] - 0s 124ms/step - loss: 0.4297 - accuracy: 0.8237 - val_loss: 0.4631 - val_accuracy: 0.7895
Epoch 113/150
3/3 [==============================] - 0s 88ms/step - loss: 0.5680 - accuracy: 0.7342 - val_loss: 0.5160 - val_accuracy: 0.8211
Epoch 11/150
3/3 [==============================] - 0s 93ms/step - loss: 0.4203 - accuracy: 0.8368 - val_loss: 0.4637 - val_accuracy: 0.7895
Epoch 114/150
3/3 [==============================] - 0s 90ms/step - loss: 0.5343 - accuracy: 0.7526 - val_loss: 0.5083 - val_accuracy: 0.8421
Epoch 12/150
3/3 [==============================] - 0s 86ms/step - loss: 0.4123 - accuracy: 0.8368 - val_loss: 0.4643 - val_accuracy: 0.7895
Epoch 115/150
3/3 [==============================] - 0s 87ms/step - loss: 0.5189 - accuracy: 0.7737 - val_loss: 0.5019 - val_accuracy: 0.8632
Epoch 13/150
3/3 [==============================] - 0s 82ms/step - loss: 0.3623 - accuracy: 0.8395 - val_loss: 0.4649 - val_accuracy: 0.7895
Epoch 116/150
3/3 [==============================] - 0s 87ms/step - loss: 0.4722 - accuracy: 0.7789 - val_loss: 0.4959 - val_accuracy: 0.8632
Epoch 14/150
3/3 [==============================] - 0s 101ms/step - loss: 0.4036 - accuracy: 0.8237 - val_loss: 0.4650 - val_accuracy: 0.7895
Epoch 117/150
3/3 [==============================] - 0s 89ms/step - loss: 0.5097 - accuracy: 0.7947 - val_loss: 0.4904 - val_accuracy: 0.8632
Epoch 15/150
3/3 [==============================] - 0s 83ms/step - loss: 0.3810 - accuracy: 0.8605 - val_loss: 0.4654 - val_accuracy: 0.7895
Epoch 118/150
3/3 [==============================] - 0s 77ms/step - loss: 0.5130 - accuracy: 0.7526 - val_loss: 0.4854 - val_accuracy: 0.8526
Epoch 16/150
3/3 [==============================] - 0s 82ms/step - loss: 0.3948 - accuracy: 0.8500 - val_loss: 0.4661 - val_accuracy: 0.7895
Epoch 119/150
3/3 [==============================] - 0s 74ms/step - loss: 0.5321 - accuracy: 0.7526 - val_loss: 0.4804 - val_accuracy: 0.8632
Epoch 17/150
3/3 [==============================] - 0s 86ms/step - loss: 0.3667 - accuracy: 0.8684 - val_loss: 0.4665 - val_accuracy: 0.7895
Epoch 120/150
3/3 [==============================] - 0s 73ms/step - loss: 0.4970 - accuracy: 0.7711 - val_loss: 0.4756 - val_accuracy: 0.8632
Epoch 18/150
3/3 [==============================] - 0s 90ms/step - loss: 0.5072 - accuracy: 0.7605 - val_loss: 0.4722 - val_accuracy: 0.8632
Epoch 19/150
3/3 [==============================] - 0s 97ms/step - loss: 0.3801 - accuracy: 0.8658 - val_loss: 0.4670 - val_accuracy: 0.7895
Epoch 121/150
3/3 [==============================] - 0s 68ms/step - loss: 0.3932 - accuracy: 0.8579 - val_loss: 0.4673 - val_accuracy: 0.7895
Epoch 122/150
3/3 [==============================] - 0s 79ms/step - loss: 0.5052 - accuracy: 0.7868 - val_loss: 0.4689 - val_accuracy: 0.8632
Epoch 20/150
3/3 [==============================] - 0s 62ms/step - loss: 0.5136 - accuracy: 0.7526 - val_loss: 0.4657 - val_accuracy: 0.8632
Epoch 21/150
3/3 [==============================] - 0s 69ms/step - loss: 0.3848 - accuracy: 0.8447 - val_loss: 0.4673 - val_accuracy: 0.7895
Epoch 123/150
3/3 [==============================] - 0s 82ms/step - loss: 0.4698 - accuracy: 0.7842 - val_loss: 0.4622 - val_accuracy: 0.8632
Epoch 22/150
3/3 [==============================] - 0s 81ms/step - loss: 0.4247 - accuracy: 0.8184 - val_loss: 0.4676 - val_accuracy: 0.7895
Epoch 124/150
3/3 [==============================] - 0s 86ms/step - loss: 0.4945 - accuracy: 0.7632 - val_loss: 0.4593 - val_accuracy: 0.8632
Epoch 23/150
3/3 [==============================] - 0s 83ms/step - loss: 0.4151 - accuracy: 0.8316 - val_loss: 0.4677 - val_accuracy: 0.7895
Epoch 125/150
3/3 [==============================] - 0s 90ms/step - loss: 0.5099 - accuracy: 0.7895 - val_loss: 0.4561 - val_accuracy: 0.8632
Epoch 24/150
3/3 [==============================] - 0s 98ms/step - loss: 0.3988 - accuracy: 0.8263 - val_loss: 0.4684 - val_accuracy: 0.7895
Epoch 126/150
3/3 [==============================] - 0s 107ms/step - loss: 0.4752 - accuracy: 0.7711 - val_loss: 0.4529 - val_accuracy: 0.8737
Epoch 25/150
3/3 [==============================] - 0s 119ms/step - loss: 0.4120 - accuracy: 0.8368 - val_loss: 0.4686 - val_accuracy: 0.7895
Epoch 127/150
3/3 [==============================] - 0s 109ms/step - loss: 0.4665 - accuracy: 0.7947 - val_loss: 0.4497 - val_accuracy: 0.8737
Epoch 26/150
3/3 [==============================] - 0s 82ms/step - loss: 0.3757 - accuracy: 0.8553 - val_loss: 0.4692 - val_accuracy: 0.7895
Epoch 128/150
3/3 [==============================] - 0s 62ms/step - loss: 0.3993 - accuracy: 0.8421 - val_loss: 0.4695 - val_accuracy: 0.7895
Epoch 129/150
3/3 [==============================] - 0s 85ms/step - loss: 0.4877 - accuracy: 0.7763 - val_loss: 0.4467 - val_accuracy: 0.8737
Epoch 27/150
3/3 [==============================] - 0s 86ms/step - loss: 0.3790 - accuracy: 0.8474 - val_loss: 0.4697 - val_accuracy: 0.7895
Epoch 130/150
3/3 [==============================] - 0s 84ms/step - loss: 0.4745 - accuracy: 0.8079 - val_loss: 0.4438 - val_accuracy: 0.8737
Epoch 28/150
3/3 [==============================] - 0s 66ms/step - loss: 0.4830 - accuracy: 0.7789 - val_loss: 0.4411 - val_accuracy: 0.8737
Epoch 29/150
3/3 [==============================] - 0s 108ms/step - loss: 0.3803 - accuracy: 0.8447 - val_loss: 0.4705 - val_accuracy: 0.7895
Epoch 131/150
3/3 [==============================] - 0s 93ms/step - loss: 0.4834 - accuracy: 0.8026 - val_loss: 0.4380 - val_accuracy: 0.8632
Epoch 30/150
3/3 [==============================] - 0s 87ms/step - loss: 0.3938 - accuracy: 0.8605 - val_loss: 0.4709 - val_accuracy: 0.7895
Epoch 132/150
3/3 [==============================] - 0s 84ms/step - loss: 0.4609 - accuracy: 0.7868 - val_loss: 0.4353 - val_accuracy: 0.8632
Epoch 31/150
3/3 [==============================] - 0s 97ms/step - loss: 0.3976 - accuracy: 0.8474 - val_loss: 0.4706 - val_accuracy: 0.7895
Epoch 133/150
3/3 [==============================] - 0s 109ms/step - loss: 0.4544 - accuracy: 0.8158 - val_loss: 0.4332 - val_accuracy: 0.8632
Epoch 32/150
3/3 [==============================] - 0s 107ms/step - loss: 0.4067 - accuracy: 0.8500 - val_loss: 0.4708 - val_accuracy: 0.7895
Epoch 134/150
3/3 [==============================] - 0s 80ms/step - loss: 0.3886 - accuracy: 0.8632 - val_loss: 0.4709 - val_accuracy: 0.7895
Epoch 135/150
3/3 [==============================] - 0s 140ms/step - loss: 0.4659 - accuracy: 0.8000 - val_loss: 0.4307 - val_accuracy: 0.8632
Epoch 33/150
3/3 [==============================] - 0s 84ms/step - loss: 0.4118 - accuracy: 0.8342 - val_loss: 0.4709 - val_accuracy: 0.7895
Epoch 136/150
3/3 [==============================] - 0s 94ms/step - loss: 0.4514 - accuracy: 0.7895 - val_loss: 0.4285 - val_accuracy: 0.8632
Epoch 34/150
3/3 [==============================] - 0s 92ms/step - loss: 0.3814 - accuracy: 0.8368 - val_loss: 0.4703 - val_accuracy: 0.7895
Epoch 137/150
3/3 [==============================] - 0s 95ms/step - loss: 0.4559 - accuracy: 0.7789 - val_loss: 0.4264 - val_accuracy: 0.8632
Epoch 35/150
3/3 [==============================] - 0s 68ms/step - loss: 0.4215 - accuracy: 0.8395 - val_loss: 0.4698 - val_accuracy: 0.7789
Epoch 138/150
3/3 [==============================] - 0s 78ms/step - loss: 0.4511 - accuracy: 0.7921 - val_loss: 0.4247 - val_accuracy: 0.8526
Epoch 36/150
3/3 [==============================] - 0s 83ms/step - loss: 0.3970 - accuracy: 0.8605 - val_loss: 0.4693 - val_accuracy: 0.7789
Epoch 139/150
3/3 [==============================] - 0s 74ms/step - loss: 0.4470 - accuracy: 0.8000 - val_loss: 0.4226 - val_accuracy: 0.8526
Epoch 37/150
3/3 [==============================] - 0s 63ms/step - loss: 0.3941 - accuracy: 0.8395 - val_loss: 0.4691 - val_accuracy: 0.7789
Epoch 140/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4154 - accuracy: 0.8026 - val_loss: 0.4205 - val_accuracy: 0.8632
Epoch 38/150
3/3 [==============================] - 0s 71ms/step - loss: 0.4080 - accuracy: 0.8132 - val_loss: 0.4690 - val_accuracy: 0.7789
Epoch 141/150
3/3 [==============================] - 0s 89ms/step - loss: 0.4767 - accuracy: 0.7947 - val_loss: 0.4185 - val_accuracy: 0.8632
Epoch 39/150
3/3 [==============================] - 0s 81ms/step - loss: 0.3901 - accuracy: 0.8447 - val_loss: 0.4692 - val_accuracy: 0.7789
Epoch 142/150
3/3 [==============================] - 0s 83ms/step - loss: 0.4503 - accuracy: 0.7868 - val_loss: 0.4165 - val_accuracy: 0.8526
Epoch 40/150
3/3 [==============================] - 0s 81ms/step - loss: 0.3684 - accuracy: 0.8579 - val_loss: 0.4695 - val_accuracy: 0.7789
Epoch 143/150
3/3 [==============================] - 0s 78ms/step - loss: 0.5119 - accuracy: 0.7684 - val_loss: 0.4141 - val_accuracy: 0.8526
Epoch 41/150
3/3 [==============================] - 0s 87ms/step - loss: 0.4158 - accuracy: 0.8105 - val_loss: 0.4696 - val_accuracy: 0.7789
Epoch 144/150
3/3 [==============================] - 0s 85ms/step - loss: 0.4390 - accuracy: 0.8237 - val_loss: 0.4122 - val_accuracy: 0.8526
Epoch 42/150
3/3 [==============================] - 0s 82ms/step - loss: 0.3825 - accuracy: 0.8474 - val_loss: 0.4698 - val_accuracy: 0.7789
Epoch 145/150
3/3 [==============================] - 0s 92ms/step - loss: 0.4460 - accuracy: 0.8053 - val_loss: 0.4101 - val_accuracy: 0.8526
Epoch 43/150
3/3 [==============================] - 0s 92ms/step - loss: 0.3796 - accuracy: 0.8395 - val_loss: 0.4700 - val_accuracy: 0.7789
Epoch 146/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4333 - accuracy: 0.7947 - val_loss: 0.4080 - val_accuracy: 0.8526
Epoch 44/150
3/3 [==============================] - 0s 93ms/step - loss: 0.3884 - accuracy: 0.8553 - val_loss: 0.4702 - val_accuracy: 0.7789
Epoch 147/150
3/3 [==============================] - 0s 106ms/step - loss: 0.4374 - accuracy: 0.7947 - val_loss: 0.4064 - val_accuracy: 0.8526
Epoch 45/150
3/3 [==============================] - 0s 88ms/step - loss: 0.3957 - accuracy: 0.8526 - val_loss: 0.4703 - val_accuracy: 0.7789
Epoch 148/150
3/3 [==============================] - 0s 90ms/step - loss: 0.4688 - accuracy: 0.7868 - val_loss: 0.4048 - val_accuracy: 0.8526
Epoch 46/150
3/3 [==============================] - 0s 93ms/step - loss: 0.3678 - accuracy: 0.8632 - val_loss: 0.4704 - val_accuracy: 0.7789
Epoch 149/150
3/3 [==============================] - 0s 91ms/step - loss: 0.4493 - accuracy: 0.8026 - val_loss: 0.4031 - val_accuracy: 0.8526
Epoch 47/150
3/3 [==============================] - 0s 62ms/step - loss: 0.3896 - accuracy: 0.8500 - val_loss: 0.4700 - val_accuracy: 0.7789
1/3 [=========>....................] - ETA: 0s - loss: 0.3787 - accuracy: 0.8516Epoch 150/150
3/3 [==============================] - 0s 76ms/step - loss: 0.4273 - accuracy: 0.8263 - val_loss: 0.4015 - val_accuracy: 0.8526
Epoch 48/150
3/3 [==============================] - 0s 76ms/step - loss: 0.3770 - accuracy: 0.8526 - val_loss: 0.4697 - val_accuracy: 0.7789
3/3 [==============================] - 0s 80ms/step - loss: 0.4442 - accuracy: 0.7895 - val_loss: 0.3999 - val_accuracy: 0.8526
Epoch 49/150
3/3 [==============================] - 0s 62ms/step - loss: 0.4196 - accuracy: 0.7974 - val_loss: 0.3980 - val_accuracy: 0.8526
Epoch 50/150
2/2 [==============================] - 0s 12ms/step - loss: 0.3965 - accuracy: 0.8481
3/3 [==============================] - 0s 37ms/step - loss: 0.4392 - accuracy: 0.7974 - val_loss: 0.3962 - val_accuracy: 0.8632
Epoch 51/150
3/3 [==============================] - 0s 57ms/step - loss: 0.4551 - accuracy: 0.7868 - val_loss: 0.3945 - val_accuracy: 0.8632
Epoch 52/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4406 - accuracy: 0.8000 - val_loss: 0.3925 - val_accuracy: 0.8632
Epoch 53/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4571 - accuracy: 0.7895 - val_loss: 0.3906 - val_accuracy: 0.8632
Epoch 54/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4502 - accuracy: 0.8000 - val_loss: 0.3888 - val_accuracy: 0.8737
Epoch 55/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4297 - accuracy: 0.8184 - val_loss: 0.3869 - val_accuracy: 0.8737
Epoch 56/150
3/3 [==============================] - 0s 50ms/step - loss: 0.4283 - accuracy: 0.8237 - val_loss: 0.3854 - val_accuracy: 0.8737
Epoch 57/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4552 - accuracy: 0.8053 - val_loss: 0.3844 - val_accuracy: 0.8737
Epoch 58/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4441 - accuracy: 0.8132 - val_loss: 0.3832 - val_accuracy: 0.8737
Epoch 59/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4511 - accuracy: 0.7868 - val_loss: 0.3823 - val_accuracy: 0.8737
Epoch 60/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4162 - accuracy: 0.8026 - val_loss: 0.3814 - val_accuracy: 0.8737
Epoch 61/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4392 - accuracy: 0.8158 - val_loss: 0.3804 - val_accuracy: 0.8737
Epoch 62/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4610 - accuracy: 0.8000 - val_loss: 0.3794 - val_accuracy: 0.8737
Epoch 63/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4620 - accuracy: 0.7974 - val_loss: 0.3782 - val_accuracy: 0.8737
Epoch 64/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4483 - accuracy: 0.7868 - val_loss: 0.3767 - val_accuracy: 0.8737
Epoch 65/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4289 - accuracy: 0.8158 - val_loss: 0.3754 - val_accuracy: 0.8737
Epoch 66/150
3/3 [==============================] - 0s 77ms/step - loss: 0.4199 - accuracy: 0.8289 - val_loss: 0.3740 - val_accuracy: 0.8737
Epoch 67/150
3/3 [==============================] - 0s 58ms/step - loss: 0.4377 - accuracy: 0.8053 - val_loss: 0.3731 - val_accuracy: 0.8737
Epoch 68/150
3/3 [==============================] - 0s 69ms/step - loss: 0.4627 - accuracy: 0.8132 - val_loss: 0.3725 - val_accuracy: 0.8737
Epoch 69/150
3/3 [==============================] - 0s 61ms/step - loss: 0.4476 - accuracy: 0.8000 - val_loss: 0.3721 - val_accuracy: 0.8632
Epoch 70/150
3/3 [==============================] - 0s 70ms/step - loss: 0.4232 - accuracy: 0.8105 - val_loss: 0.3718 - val_accuracy: 0.8632
Epoch 71/150
3/3 [==============================] - 0s 55ms/step - loss: 0.4068 - accuracy: 0.8132 - val_loss: 0.3711 - val_accuracy: 0.8632
Epoch 72/150
3/3 [==============================] - 0s 48ms/step - loss: 0.4541 - accuracy: 0.8079 - val_loss: 0.3704 - val_accuracy: 0.8737
Epoch 73/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4144 - accuracy: 0.8053 - val_loss: 0.3700 - val_accuracy: 0.8737
Epoch 74/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4559 - accuracy: 0.8158 - val_loss: 0.3690 - val_accuracy: 0.8737
Epoch 75/150
3/3 [==============================] - 0s 49ms/step - loss: 0.4281 - accuracy: 0.8000 - val_loss: 0.3688 - val_accuracy: 0.8737
Epoch 76/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4170 - accuracy: 0.8105 - val_loss: 0.3685 - val_accuracy: 0.8737
Epoch 77/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4553 - accuracy: 0.7974 - val_loss: 0.3684 - val_accuracy: 0.8632
Epoch 78/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4068 - accuracy: 0.8158 - val_loss: 0.3680 - val_accuracy: 0.8632
Epoch 79/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4478 - accuracy: 0.8000 - val_loss: 0.3678 - val_accuracy: 0.8632
Epoch 80/150
3/3 [==============================] - 0s 40ms/step - loss: 0.3854 - accuracy: 0.8342 - val_loss: 0.3675 - val_accuracy: 0.8632
Epoch 81/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4821 - accuracy: 0.7895 - val_loss: 0.3671 - val_accuracy: 0.8632
Epoch 82/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4431 - accuracy: 0.7947 - val_loss: 0.3660 - val_accuracy: 0.8737
Epoch 83/150
3/3 [==============================] - 0s 42ms/step - loss: 0.4089 - accuracy: 0.8211 - val_loss: 0.3653 - val_accuracy: 0.8737
Epoch 84/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4108 - accuracy: 0.8079 - val_loss: 0.3647 - val_accuracy: 0.8737
Epoch 85/150
3/3 [==============================] - 0s 42ms/step - loss: 0.4262 - accuracy: 0.8105 - val_loss: 0.3642 - val_accuracy: 0.8737
Epoch 86/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4188 - accuracy: 0.8263 - val_loss: 0.3635 - val_accuracy: 0.8737
Epoch 87/150
3/3 [==============================] - 0s 42ms/step - loss: 0.4165 - accuracy: 0.8105 - val_loss: 0.3632 - val_accuracy: 0.8737
Epoch 88/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4209 - accuracy: 0.8000 - val_loss: 0.3627 - val_accuracy: 0.8737
Epoch 89/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4414 - accuracy: 0.8079 - val_loss: 0.3622 - val_accuracy: 0.8737
Epoch 90/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4658 - accuracy: 0.7868 - val_loss: 0.3619 - val_accuracy: 0.8737
Epoch 91/150
3/3 [==============================] - 0s 45ms/step - loss: 0.3906 - accuracy: 0.8237 - val_loss: 0.3615 - val_accuracy: 0.8737
Epoch 92/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4225 - accuracy: 0.8105 - val_loss: 0.3613 - val_accuracy: 0.8737
Epoch 93/150
3/3 [==============================] - 0s 60ms/step - loss: 0.4423 - accuracy: 0.7789 - val_loss: 0.3608 - val_accuracy: 0.8737
Epoch 94/150
3/3 [==============================] - 0s 57ms/step - loss: 0.4637 - accuracy: 0.7974 - val_loss: 0.3608 - val_accuracy: 0.8737
Epoch 95/150
3/3 [==============================] - 0s 45ms/step - loss: 0.3970 - accuracy: 0.8105 - val_loss: 0.3606 - val_accuracy: 0.8737
Epoch 96/150
3/3 [==============================] - 0s 49ms/step - loss: 0.4118 - accuracy: 0.8105 - val_loss: 0.3596 - val_accuracy: 0.8737
Epoch 97/150
3/3 [==============================] - 0s 52ms/step - loss: 0.4439 - accuracy: 0.7947 - val_loss: 0.3589 - val_accuracy: 0.8737
Epoch 98/150
3/3 [==============================] - 0s 41ms/step - loss: 0.3969 - accuracy: 0.8105 - val_loss: 0.3586 - val_accuracy: 0.8737
Epoch 99/150
3/3 [==============================] - 0s 49ms/step - loss: 0.4198 - accuracy: 0.8105 - val_loss: 0.3581 - val_accuracy: 0.8737
Epoch 100/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4155 - accuracy: 0.8105 - val_loss: 0.3580 - val_accuracy: 0.8842
Epoch 101/150
3/3 [==============================] - 0s 32ms/step - loss: 0.4181 - accuracy: 0.8105 - val_loss: 0.3578 - val_accuracy: 0.8842
Epoch 102/150
3/3 [==============================] - 0s 33ms/step - loss: 0.4132 - accuracy: 0.8158 - val_loss: 0.3577 - val_accuracy: 0.8842
Epoch 103/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4157 - accuracy: 0.8026 - val_loss: 0.3574 - val_accuracy: 0.8842
Epoch 104/150
3/3 [==============================] - 0s 38ms/step - loss: 0.4238 - accuracy: 0.8263 - val_loss: 0.3572 - val_accuracy: 0.8842
Epoch 105/150
3/3 [==============================] - 0s 33ms/step - loss: 0.4195 - accuracy: 0.7921 - val_loss: 0.3568 - val_accuracy: 0.8842
Epoch 106/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4252 - accuracy: 0.8105 - val_loss: 0.3566 - val_accuracy: 0.8842
Epoch 107/150
3/3 [==============================] - 0s 40ms/step - loss: 0.4171 - accuracy: 0.8184 - val_loss: 0.3562 - val_accuracy: 0.8842
Epoch 108/150
3/3 [==============================] - 0s 42ms/step - loss: 0.3870 - accuracy: 0.8079 - val_loss: 0.3561 - val_accuracy: 0.8842
Epoch 109/150
3/3 [==============================] - 0s 39ms/step - loss: 0.4265 - accuracy: 0.8158 - val_loss: 0.3560 - val_accuracy: 0.8842
Epoch 110/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4080 - accuracy: 0.8053 - val_loss: 0.3561 - val_accuracy: 0.8842
Epoch 111/150
3/3 [==============================] - 0s 59ms/step - loss: 0.3775 - accuracy: 0.8474 - val_loss: 0.3564 - val_accuracy: 0.8842
Epoch 112/150
3/3 [==============================] - 0s 50ms/step - loss: 0.4472 - accuracy: 0.8000 - val_loss: 0.3565 - val_accuracy: 0.8842
Epoch 113/150
3/3 [==============================] - 0s 52ms/step - loss: 0.3855 - accuracy: 0.8158 - val_loss: 0.3563 - val_accuracy: 0.8842
Epoch 114/150
3/3 [==============================] - 0s 53ms/step - loss: 0.4270 - accuracy: 0.8079 - val_loss: 0.3557 - val_accuracy: 0.8842
Epoch 115/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4272 - accuracy: 0.8342 - val_loss: 0.3549 - val_accuracy: 0.8842
Epoch 116/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4158 - accuracy: 0.8079 - val_loss: 0.3541 - val_accuracy: 0.8842
Epoch 117/150
3/3 [==============================] - 0s 53ms/step - loss: 0.3814 - accuracy: 0.8263 - val_loss: 0.3536 - val_accuracy: 0.8842
Epoch 118/150
3/3 [==============================] - 0s 49ms/step - loss: 0.4020 - accuracy: 0.8395 - val_loss: 0.3534 - val_accuracy: 0.8842
Epoch 119/150
3/3 [==============================] - 0s 56ms/step - loss: 0.4049 - accuracy: 0.8184 - val_loss: 0.3534 - val_accuracy: 0.8842
Epoch 120/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4170 - accuracy: 0.8263 - val_loss: 0.3537 - val_accuracy: 0.8842
Epoch 121/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4072 - accuracy: 0.8105 - val_loss: 0.3538 - val_accuracy: 0.8842
Epoch 122/150
3/3 [==============================] - 0s 52ms/step - loss: 0.3988 - accuracy: 0.8237 - val_loss: 0.3539 - val_accuracy: 0.8842
Epoch 123/150
3/3 [==============================] - 0s 54ms/step - loss: 0.4200 - accuracy: 0.8184 - val_loss: 0.3539 - val_accuracy: 0.8842
Epoch 124/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4026 - accuracy: 0.8211 - val_loss: 0.3541 - val_accuracy: 0.8842
Epoch 125/150
3/3 [==============================] - 0s 58ms/step - loss: 0.4272 - accuracy: 0.8026 - val_loss: 0.3545 - val_accuracy: 0.8842
Epoch 126/150
3/3 [==============================] - 0s 50ms/step - loss: 0.3857 - accuracy: 0.8368 - val_loss: 0.3543 - val_accuracy: 0.8842
Epoch 127/150
3/3 [==============================] - 0s 49ms/step - loss: 0.4218 - accuracy: 0.8184 - val_loss: 0.3542 - val_accuracy: 0.8842
Epoch 128/150
3/3 [==============================] - 0s 59ms/step - loss: 0.4403 - accuracy: 0.7947 - val_loss: 0.3536 - val_accuracy: 0.8842
Epoch 129/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3829 - accuracy: 0.8237 - val_loss: 0.3536 - val_accuracy: 0.8842
Epoch 130/150
3/3 [==============================] - 0s 41ms/step - loss: 0.4387 - accuracy: 0.8105 - val_loss: 0.3532 - val_accuracy: 0.8842
Epoch 131/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4274 - accuracy: 0.8053 - val_loss: 0.3528 - val_accuracy: 0.8842
Epoch 132/150
3/3 [==============================] - 0s 47ms/step - loss: 0.4026 - accuracy: 0.8342 - val_loss: 0.3522 - val_accuracy: 0.8842
Epoch 133/150
3/3 [==============================] - 0s 47ms/step - loss: 0.3839 - accuracy: 0.8237 - val_loss: 0.3520 - val_accuracy: 0.8842
Epoch 134/150
3/3 [==============================] - 0s 44ms/step - loss: 0.4005 - accuracy: 0.8132 - val_loss: 0.3522 - val_accuracy: 0.8842
Epoch 135/150
3/3 [==============================] - 0s 48ms/step - loss: 0.3772 - accuracy: 0.8395 - val_loss: 0.3525 - val_accuracy: 0.8842
Epoch 136/150
3/3 [==============================] - 0s 55ms/step - loss: 0.3991 - accuracy: 0.8263 - val_loss: 0.3523 - val_accuracy: 0.8842
Epoch 137/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4012 - accuracy: 0.8263 - val_loss: 0.3521 - val_accuracy: 0.8737
Epoch 138/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4067 - accuracy: 0.8211 - val_loss: 0.3520 - val_accuracy: 0.8842
Epoch 139/150
3/3 [==============================] - 0s 43ms/step - loss: 0.4319 - accuracy: 0.8211 - val_loss: 0.3523 - val_accuracy: 0.8737
Epoch 140/150
3/3 [==============================] - 0s 44ms/step - loss: 0.3850 - accuracy: 0.8289 - val_loss: 0.3524 - val_accuracy: 0.8737
Epoch 141/150
3/3 [==============================] - 0s 51ms/step - loss: 0.4164 - accuracy: 0.8237 - val_loss: 0.3521 - val_accuracy: 0.8737
Epoch 142/150
3/3 [==============================] - 0s 46ms/step - loss: 0.4310 - accuracy: 0.8237 - val_loss: 0.3518 - val_accuracy: 0.8737
Epoch 143/150
3/3 [==============================] - 0s 43ms/step - loss: 0.3823 - accuracy: 0.8395 - val_loss: 0.3518 - val_accuracy: 0.8737
Epoch 144/150
3/3 [==============================] - 0s 45ms/step - loss: 0.4022 - accuracy: 0.8105 - val_loss: 0.3519 - val_accuracy: 0.8737
Epoch 145/150
3/3 [==============================] - 0s 46ms/step - loss: 0.3999 - accuracy: 0.8158 - val_loss: 0.3520 - val_accuracy: 0.8737
Epoch 146/150
3/3 [==============================] - 0s 64ms/step - loss: 0.3953 - accuracy: 0.8395 - val_loss: 0.3519 - val_accuracy: 0.8737
Epoch 147/150
3/3 [==============================] - 0s 42ms/step - loss: 0.4360 - accuracy: 0.7921 - val_loss: 0.3518 - val_accuracy: 0.8737
Epoch 148/150
3/3 [==============================] - 0s 57ms/step - loss: 0.4118 - accuracy: 0.8079 - val_loss: 0.3519 - val_accuracy: 0.8737
Epoch 149/150
3/3 [==============================] - 0s 50ms/step - loss: 0.4054 - accuracy: 0.8132 - val_loss: 0.3521 - val_accuracy: 0.8737
Epoch 150/150
3/3 [==============================] - 0s 51ms/step - loss: 0.3998 - accuracy: 0.8289 - val_loss: 0.3524 - val_accuracy: 0.8842
2/2 [==============================] - 0s 10ms/step - loss: 0.4255 - accuracy: 0.8312
Epoch 1/150
9/9 [==============================] - 2s 66ms/step - loss: 0.8149 - accuracy: 0.5360 - val_loss: 0.6960 - val_accuracy: 0.5315
Epoch 2/150
9/9 [==============================] - 0s 12ms/step - loss: 0.6294 - accuracy: 0.6643 - val_loss: 0.6367 - val_accuracy: 0.6643
Epoch 3/150
9/9 [==============================] - 0s 11ms/step - loss: 0.5717 - accuracy: 0.7258 - val_loss: 0.5960 - val_accuracy: 0.7483
Epoch 4/150
9/9 [==============================] - 0s 12ms/step - loss: 0.5314 - accuracy: 0.7469 - val_loss: 0.5677 - val_accuracy: 0.7343
Epoch 5/150
9/9 [==============================] - 0s 13ms/step - loss: 0.5308 - accuracy: 0.7592 - val_loss: 0.5463 - val_accuracy: 0.7203
Epoch 6/150
9/9 [==============================] - 0s 12ms/step - loss: 0.5763 - accuracy: 0.7487 - val_loss: 0.5287 - val_accuracy: 0.7413
Epoch 7/150
9/9 [==============================] - 0s 13ms/step - loss: 0.5133 - accuracy: 0.7610 - val_loss: 0.5146 - val_accuracy: 0.7622
Epoch 8/150
9/9 [==============================] - 0s 12ms/step - loss: 0.5214 - accuracy: 0.7821 - val_loss: 0.5031 - val_accuracy: 0.7622
Epoch 9/150
9/9 [==============================] - 0s 11ms/step - loss: 0.5183 - accuracy: 0.7750 - val_loss: 0.4938 - val_accuracy: 0.7972
Epoch 10/150
9/9 [==============================] - 0s 14ms/step - loss: 0.5416 - accuracy: 0.7803 - val_loss: 0.4851 - val_accuracy: 0.8112
Epoch 11/150
9/9 [==============================] - 0s 12ms/step - loss: 0.5048 - accuracy: 0.7821 - val_loss: 0.4764 - val_accuracy: 0.8112
Epoch 12/150
9/9 [==============================] - 0s 12ms/step - loss: 0.4494 - accuracy: 0.7891 - val_loss: 0.4692 - val_accuracy: 0.8252
Epoch 13/150
9/9 [==============================] - 0s 14ms/step - loss: 0.4768 - accuracy: 0.7873 - val_loss: 0.4634 - val_accuracy: 0.8182
Epoch 14/150
9/9 [==============================] - 0s 13ms/step - loss: 0.4620 - accuracy: 0.7961 - val_loss: 0.4574 - val_accuracy: 0.8252
Epoch 15/150
9/9 [==============================] - 0s 12ms/step - loss: 0.4538 - accuracy: 0.8014 - val_loss: 0.4525 - val_accuracy: 0.8182
Epoch 16/150
9/9 [==============================] - 0s 13ms/step - loss: 0.4737 - accuracy: 0.7996 - val_loss: 0.4478 - val_accuracy: 0.8322
Epoch 17/150
9/9 [==============================] - 0s 14ms/step - loss: 0.4821 - accuracy: 0.8032 - val_loss: 0.4436 - val_accuracy: 0.8252
Epoch 18/150
9/9 [==============================] - 0s 12ms/step - loss: 0.4531 - accuracy: 0.8014 - val_loss: 0.4401 - val_accuracy: 0.8252
Epoch 19/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4633 - accuracy: 0.7821 - val_loss: 0.4377 - val_accuracy: 0.8252
Epoch 20/150
9/9 [==============================] - 0s 18ms/step - loss: 0.4641 - accuracy: 0.7944 - val_loss: 0.4348 - val_accuracy: 0.8322
Epoch 21/150
9/9 [==============================] - 0s 15ms/step - loss: 0.4616 - accuracy: 0.7944 - val_loss: 0.4323 - val_accuracy: 0.8322
Epoch 22/150
9/9 [==============================] - 0s 20ms/step - loss: 0.4340 - accuracy: 0.8032 - val_loss: 0.4298 - val_accuracy: 0.8322
Epoch 23/150
9/9 [==============================] - 0s 15ms/step - loss: 0.4487 - accuracy: 0.8067 - val_loss: 0.4280 - val_accuracy: 0.8322
Epoch 24/150
9/9 [==============================] - 0s 15ms/step - loss: 0.4550 - accuracy: 0.8084 - val_loss: 0.4275 - val_accuracy: 0.8322
Epoch 25/150
9/9 [==============================] - 0s 14ms/step - loss: 0.4849 - accuracy: 0.7961 - val_loss: 0.4267 - val_accuracy: 0.8252
Epoch 26/150
9/9 [==============================] - 0s 14ms/step - loss: 0.4682 - accuracy: 0.7891 - val_loss: 0.4264 - val_accuracy: 0.8252
Epoch 27/150
9/9 [==============================] - 0s 14ms/step - loss: 0.4526 - accuracy: 0.8172 - val_loss: 0.4252 - val_accuracy: 0.8252
Epoch 28/150
9/9 [==============================] - 0s 15ms/step - loss: 0.4372 - accuracy: 0.8225 - val_loss: 0.4240 - val_accuracy: 0.8322
Epoch 29/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4434 - accuracy: 0.8225 - val_loss: 0.4228 - val_accuracy: 0.8322
Epoch 30/150
9/9 [==============================] - 0s 15ms/step - loss: 0.4334 - accuracy: 0.8155 - val_loss: 0.4218 - val_accuracy: 0.8322
Epoch 31/150
9/9 [==============================] - 0s 20ms/step - loss: 0.4216 - accuracy: 0.8313 - val_loss: 0.4209 - val_accuracy: 0.8322
Epoch 32/150
9/9 [==============================] - 0s 20ms/step - loss: 0.4431 - accuracy: 0.8067 - val_loss: 0.4210 - val_accuracy: 0.8322
Epoch 33/150
9/9 [==============================] - 0s 20ms/step - loss: 0.4558 - accuracy: 0.8120 - val_loss: 0.4210 - val_accuracy: 0.8322
Epoch 34/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4456 - accuracy: 0.8067 - val_loss: 0.4224 - val_accuracy: 0.8322
Epoch 35/150
9/9 [==============================] - 0s 18ms/step - loss: 0.4327 - accuracy: 0.8014 - val_loss: 0.4219 - val_accuracy: 0.8322
Epoch 36/150
9/9 [==============================] - 0s 18ms/step - loss: 0.4576 - accuracy: 0.7996 - val_loss: 0.4220 - val_accuracy: 0.8322
Epoch 37/150
9/9 [==============================] - 0s 18ms/step - loss: 0.4143 - accuracy: 0.8190 - val_loss: 0.4214 - val_accuracy: 0.8322
Epoch 38/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4171 - accuracy: 0.8260 - val_loss: 0.4207 - val_accuracy: 0.8322
Epoch 39/150
9/9 [==============================] - 0s 18ms/step - loss: 0.4259 - accuracy: 0.8225 - val_loss: 0.4195 - val_accuracy: 0.8392
Epoch 40/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4323 - accuracy: 0.8401 - val_loss: 0.4189 - val_accuracy: 0.8392
Epoch 41/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4278 - accuracy: 0.8172 - val_loss: 0.4183 - val_accuracy: 0.8392
Epoch 42/150
9/9 [==============================] - 0s 21ms/step - loss: 0.4365 - accuracy: 0.8243 - val_loss: 0.4179 - val_accuracy: 0.8322
Epoch 43/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4473 - accuracy: 0.8084 - val_loss: 0.4187 - val_accuracy: 0.8322
Epoch 44/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4196 - accuracy: 0.8418 - val_loss: 0.4200 - val_accuracy: 0.8322
Epoch 45/150
9/9 [==============================] - 0s 24ms/step - loss: 0.4186 - accuracy: 0.8172 - val_loss: 0.4212 - val_accuracy: 0.8322
Epoch 46/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4324 - accuracy: 0.8278 - val_loss: 0.4227 - val_accuracy: 0.8322
Epoch 47/150
9/9 [==============================] - 0s 18ms/step - loss: 0.4072 - accuracy: 0.8225 - val_loss: 0.4223 - val_accuracy: 0.8322
Epoch 48/150
9/9 [==============================] - 0s 15ms/step - loss: 0.4310 - accuracy: 0.8172 - val_loss: 0.4213 - val_accuracy: 0.8322
Epoch 49/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4164 - accuracy: 0.8278 - val_loss: 0.4215 - val_accuracy: 0.8322
Epoch 50/150
9/9 [==============================] - 0s 18ms/step - loss: 0.4328 - accuracy: 0.8225 - val_loss: 0.4216 - val_accuracy: 0.8322
Epoch 51/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4088 - accuracy: 0.8401 - val_loss: 0.4213 - val_accuracy: 0.8322
Epoch 52/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4134 - accuracy: 0.8348 - val_loss: 0.4187 - val_accuracy: 0.8322
Epoch 53/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4137 - accuracy: 0.8207 - val_loss: 0.4181 - val_accuracy: 0.8322
Epoch 54/150
9/9 [==============================] - 0s 16ms/step - loss: 0.4431 - accuracy: 0.8243 - val_loss: 0.4170 - val_accuracy: 0.8182
Epoch 55/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4214 - accuracy: 0.8243 - val_loss: 0.4176 - val_accuracy: 0.8182
Epoch 56/150
9/9 [==============================] - 0s 15ms/step - loss: 0.3823 - accuracy: 0.8436 - val_loss: 0.4197 - val_accuracy: 0.8322
Epoch 57/150
9/9 [==============================] - 0s 16ms/step - loss: 0.4075 - accuracy: 0.8418 - val_loss: 0.4208 - val_accuracy: 0.8322
Epoch 58/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4308 - accuracy: 0.8207 - val_loss: 0.4212 - val_accuracy: 0.8322
Epoch 59/150
9/9 [==============================] - 0s 18ms/step - loss: 0.4385 - accuracy: 0.8172 - val_loss: 0.4223 - val_accuracy: 0.8322
Epoch 60/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4167 - accuracy: 0.8260 - val_loss: 0.4213 - val_accuracy: 0.8322
Epoch 61/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4218 - accuracy: 0.8137 - val_loss: 0.4197 - val_accuracy: 0.8322
Epoch 62/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4345 - accuracy: 0.7979 - val_loss: 0.4194 - val_accuracy: 0.8322
Epoch 63/150
9/9 [==============================] - 0s 15ms/step - loss: 0.3978 - accuracy: 0.8295 - val_loss: 0.4186 - val_accuracy: 0.8322
Epoch 64/150
9/9 [==============================] - 0s 15ms/step - loss: 0.4405 - accuracy: 0.8243 - val_loss: 0.4184 - val_accuracy: 0.8252
Epoch 65/150
9/9 [==============================] - 0s 16ms/step - loss: 0.3988 - accuracy: 0.8330 - val_loss: 0.4184 - val_accuracy: 0.8252
Epoch 66/150
9/9 [==============================] - 0s 16ms/step - loss: 0.4398 - accuracy: 0.8190 - val_loss: 0.4187 - val_accuracy: 0.8252
Epoch 67/150
9/9 [==============================] - 0s 16ms/step - loss: 0.4021 - accuracy: 0.8401 - val_loss: 0.4180 - val_accuracy: 0.8252
Epoch 68/150
9/9 [==============================] - 0s 18ms/step - loss: 0.4120 - accuracy: 0.8330 - val_loss: 0.4163 - val_accuracy: 0.8252
Epoch 69/150
9/9 [==============================] - 0s 21ms/step - loss: 0.4027 - accuracy: 0.8348 - val_loss: 0.4160 - val_accuracy: 0.8252
Epoch 70/150
9/9 [==============================] - 0s 21ms/step - loss: 0.4141 - accuracy: 0.8348 - val_loss: 0.4163 - val_accuracy: 0.8252
Epoch 71/150
9/9 [==============================] - 0s 14ms/step - loss: 0.4294 - accuracy: 0.8243 - val_loss: 0.4157 - val_accuracy: 0.8252
Epoch 72/150
9/9 [==============================] - 0s 14ms/step - loss: 0.4121 - accuracy: 0.8190 - val_loss: 0.4170 - val_accuracy: 0.8252
Epoch 73/150
9/9 [==============================] - 0s 13ms/step - loss: 0.4272 - accuracy: 0.8207 - val_loss: 0.4169 - val_accuracy: 0.8252
Epoch 74/150
9/9 [==============================] - 0s 16ms/step - loss: 0.3890 - accuracy: 0.8489 - val_loss: 0.4175 - val_accuracy: 0.8322
Epoch 75/150
9/9 [==============================] - 0s 21ms/step - loss: 0.4036 - accuracy: 0.8313 - val_loss: 0.4174 - val_accuracy: 0.8252
Epoch 76/150
9/9 [==============================] - 0s 14ms/step - loss: 0.4068 - accuracy: 0.8313 - val_loss: 0.4182 - val_accuracy: 0.8322
Epoch 77/150
9/9 [==============================] - 0s 13ms/step - loss: 0.4053 - accuracy: 0.8348 - val_loss: 0.4187 - val_accuracy: 0.8322
Epoch 78/150
9/9 [==============================] - 0s 13ms/step - loss: 0.4113 - accuracy: 0.8190 - val_loss: 0.4197 - val_accuracy: 0.8322
Epoch 79/150
9/9 [==============================] - 0s 12ms/step - loss: 0.3809 - accuracy: 0.8418 - val_loss: 0.4197 - val_accuracy: 0.8322
Epoch 80/150
9/9 [==============================] - 0s 14ms/step - loss: 0.3751 - accuracy: 0.8348 - val_loss: 0.4190 - val_accuracy: 0.8322
Epoch 81/150
9/9 [==============================] - 0s 14ms/step - loss: 0.4316 - accuracy: 0.8260 - val_loss: 0.4178 - val_accuracy: 0.8322
Epoch 82/150
9/9 [==============================] - 0s 13ms/step - loss: 0.4029 - accuracy: 0.8330 - val_loss: 0.4184 - val_accuracy: 0.8322
Epoch 83/150
9/9 [==============================] - 0s 15ms/step - loss: 0.3944 - accuracy: 0.8471 - val_loss: 0.4202 - val_accuracy: 0.8322
Epoch 84/150
9/9 [==============================] - 0s 15ms/step - loss: 0.4088 - accuracy: 0.8348 - val_loss: 0.4199 - val_accuracy: 0.8322
Epoch 85/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4165 - accuracy: 0.8190 - val_loss: 0.4189 - val_accuracy: 0.8322
Epoch 86/150
9/9 [==============================] - 0s 14ms/step - loss: 0.3921 - accuracy: 0.8348 - val_loss: 0.4188 - val_accuracy: 0.8322
Epoch 87/150
9/9 [==============================] - 0s 15ms/step - loss: 0.4117 - accuracy: 0.8207 - val_loss: 0.4186 - val_accuracy: 0.8322
Epoch 88/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4070 - accuracy: 0.8225 - val_loss: 0.4172 - val_accuracy: 0.8322
Epoch 89/150
9/9 [==============================] - 0s 16ms/step - loss: 0.4053 - accuracy: 0.8243 - val_loss: 0.4169 - val_accuracy: 0.8252
Epoch 90/150
9/9 [==============================] - 0s 12ms/step - loss: 0.4079 - accuracy: 0.8260 - val_loss: 0.4173 - val_accuracy: 0.8322
Epoch 91/150
9/9 [==============================] - 0s 15ms/step - loss: 0.3935 - accuracy: 0.8366 - val_loss: 0.4168 - val_accuracy: 0.8322
Epoch 92/150
9/9 [==============================] - 0s 14ms/step - loss: 0.4064 - accuracy: 0.8383 - val_loss: 0.4169 - val_accuracy: 0.8322
Epoch 93/150
9/9 [==============================] - 0s 13ms/step - loss: 0.4047 - accuracy: 0.8348 - val_loss: 0.4176 - val_accuracy: 0.8322
Epoch 94/150
9/9 [==============================] - 0s 13ms/step - loss: 0.4100 - accuracy: 0.8489 - val_loss: 0.4169 - val_accuracy: 0.8252
Epoch 95/150
9/9 [==============================] - 0s 13ms/step - loss: 0.4108 - accuracy: 0.8348 - val_loss: 0.4157 - val_accuracy: 0.8252
Epoch 96/150
9/9 [==============================] - 0s 14ms/step - loss: 0.4079 - accuracy: 0.8383 - val_loss: 0.4151 - val_accuracy: 0.8252
Epoch 97/150
9/9 [==============================] - 0s 12ms/step - loss: 0.3983 - accuracy: 0.8348 - val_loss: 0.4154 - val_accuracy: 0.8252
Epoch 98/150
9/9 [==============================] - 0s 13ms/step - loss: 0.4149 - accuracy: 0.8278 - val_loss: 0.4156 - val_accuracy: 0.8252
Epoch 99/150
9/9 [==============================] - 0s 14ms/step - loss: 0.3814 - accuracy: 0.8366 - val_loss: 0.4153 - val_accuracy: 0.8252
Epoch 100/150
9/9 [==============================] - 0s 15ms/step - loss: 0.3969 - accuracy: 0.8436 - val_loss: 0.4147 - val_accuracy: 0.8252
Epoch 101/150
9/9 [==============================] - 0s 14ms/step - loss: 0.4049 - accuracy: 0.8207 - val_loss: 0.4155 - val_accuracy: 0.8252
Epoch 102/150
9/9 [==============================] - 0s 13ms/step - loss: 0.4028 - accuracy: 0.8120 - val_loss: 0.4171 - val_accuracy: 0.8252
Epoch 103/150
9/9 [==============================] - 0s 13ms/step - loss: 0.3779 - accuracy: 0.8524 - val_loss: 0.4175 - val_accuracy: 0.8322
Epoch 104/150
9/9 [==============================] - 0s 13ms/step - loss: 0.4056 - accuracy: 0.8366 - val_loss: 0.4189 - val_accuracy: 0.8252
Epoch 105/150
9/9 [==============================] - 0s 14ms/step - loss: 0.4236 - accuracy: 0.8260 - val_loss: 0.4198 - val_accuracy: 0.8252
Epoch 106/150
9/9 [==============================] - 0s 13ms/step - loss: 0.4224 - accuracy: 0.8330 - val_loss: 0.4199 - val_accuracy: 0.8252
Epoch 107/150
9/9 [==============================] - 0s 13ms/step - loss: 0.3887 - accuracy: 0.8330 - val_loss: 0.4189 - val_accuracy: 0.8252
Epoch 108/150
9/9 [==============================] - 0s 13ms/step - loss: 0.4142 - accuracy: 0.8348 - val_loss: 0.4175 - val_accuracy: 0.8252
Epoch 109/150
9/9 [==============================] - 0s 14ms/step - loss: 0.4112 - accuracy: 0.8401 - val_loss: 0.4171 - val_accuracy: 0.8252
Epoch 110/150
9/9 [==============================] - 0s 13ms/step - loss: 0.4122 - accuracy: 0.8225 - val_loss: 0.4166 - val_accuracy: 0.8322
Epoch 111/150
9/9 [==============================] - 0s 15ms/step - loss: 0.3797 - accuracy: 0.8471 - val_loss: 0.4159 - val_accuracy: 0.8322
Epoch 112/150
9/9 [==============================] - 0s 12ms/step - loss: 0.3927 - accuracy: 0.8278 - val_loss: 0.4163 - val_accuracy: 0.8322
Epoch 113/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4034 - accuracy: 0.8260 - val_loss: 0.4163 - val_accuracy: 0.8252
Epoch 114/150
9/9 [==============================] - 0s 21ms/step - loss: 0.3932 - accuracy: 0.8366 - val_loss: 0.4149 - val_accuracy: 0.8322
Epoch 115/150
9/9 [==============================] - 0s 20ms/step - loss: 0.3930 - accuracy: 0.8418 - val_loss: 0.4151 - val_accuracy: 0.8322
Epoch 116/150
9/9 [==============================] - 0s 17ms/step - loss: 0.3934 - accuracy: 0.8471 - val_loss: 0.4159 - val_accuracy: 0.8322
Epoch 117/150
9/9 [==============================] - 0s 14ms/step - loss: 0.4071 - accuracy: 0.8278 - val_loss: 0.4164 - val_accuracy: 0.8322
Epoch 118/150
9/9 [==============================] - 0s 15ms/step - loss: 0.3854 - accuracy: 0.8471 - val_loss: 0.4155 - val_accuracy: 0.8322
Epoch 119/150
9/9 [==============================] - 0s 15ms/step - loss: 0.3873 - accuracy: 0.8453 - val_loss: 0.4144 - val_accuracy: 0.8322
Epoch 120/150
9/9 [==============================] - 0s 15ms/step - loss: 0.3980 - accuracy: 0.8401 - val_loss: 0.4148 - val_accuracy: 0.8322
Epoch 121/150
9/9 [==============================] - 0s 15ms/step - loss: 0.3923 - accuracy: 0.8436 - val_loss: 0.4160 - val_accuracy: 0.8322
Epoch 122/150
9/9 [==============================] - 0s 15ms/step - loss: 0.3902 - accuracy: 0.8418 - val_loss: 0.4157 - val_accuracy: 0.8322
Epoch 123/150
9/9 [==============================] - 0s 14ms/step - loss: 0.3942 - accuracy: 0.8524 - val_loss: 0.4153 - val_accuracy: 0.8322
Epoch 124/150
9/9 [==============================] - 0s 15ms/step - loss: 0.3847 - accuracy: 0.8471 - val_loss: 0.4157 - val_accuracy: 0.8322
Epoch 125/150
9/9 [==============================] - 0s 16ms/step - loss: 0.3855 - accuracy: 0.8348 - val_loss: 0.4165 - val_accuracy: 0.8322
Epoch 126/150
9/9 [==============================] - 0s 16ms/step - loss: 0.3888 - accuracy: 0.8295 - val_loss: 0.4165 - val_accuracy: 0.8322
Epoch 127/150
9/9 [==============================] - 0s 15ms/step - loss: 0.3726 - accuracy: 0.8348 - val_loss: 0.4178 - val_accuracy: 0.8252
Epoch 128/150
9/9 [==============================] - 0s 14ms/step - loss: 0.3908 - accuracy: 0.8489 - val_loss: 0.4180 - val_accuracy: 0.8252
Epoch 129/150
9/9 [==============================] - 0s 16ms/step - loss: 0.3880 - accuracy: 0.8348 - val_loss: 0.4185 - val_accuracy: 0.8252
Epoch 130/150
9/9 [==============================] - 0s 14ms/step - loss: 0.4084 - accuracy: 0.8243 - val_loss: 0.4186 - val_accuracy: 0.8252
Epoch 131/150
9/9 [==============================] - 0s 16ms/step - loss: 0.4159 - accuracy: 0.8295 - val_loss: 0.4191 - val_accuracy: 0.8252
Epoch 132/150
9/9 [==============================] - 0s 17ms/step - loss: 0.3877 - accuracy: 0.8383 - val_loss: 0.4199 - val_accuracy: 0.8252
Epoch 133/150
9/9 [==============================] - 0s 14ms/step - loss: 0.3999 - accuracy: 0.8313 - val_loss: 0.4190 - val_accuracy: 0.8252
Epoch 134/150
9/9 [==============================] - 0s 17ms/step - loss: 0.3948 - accuracy: 0.8348 - val_loss: 0.4183 - val_accuracy: 0.8252
Epoch 135/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4067 - accuracy: 0.8313 - val_loss: 0.4187 - val_accuracy: 0.8252
Epoch 136/150
9/9 [==============================] - 0s 17ms/step - loss: 0.3914 - accuracy: 0.8383 - val_loss: 0.4195 - val_accuracy: 0.8252
Epoch 137/150
9/9 [==============================] - 0s 21ms/step - loss: 0.3919 - accuracy: 0.8278 - val_loss: 0.4194 - val_accuracy: 0.8252
Epoch 138/150
9/9 [==============================] - 0s 19ms/step - loss: 0.3998 - accuracy: 0.8401 - val_loss: 0.4200 - val_accuracy: 0.8252
Epoch 139/150
9/9 [==============================] - 0s 20ms/step - loss: 0.3889 - accuracy: 0.8295 - val_loss: 0.4197 - val_accuracy: 0.8252
Epoch 140/150
9/9 [==============================] - 0s 16ms/step - loss: 0.3908 - accuracy: 0.8330 - val_loss: 0.4185 - val_accuracy: 0.8252
Epoch 141/150
9/9 [==============================] - 0s 13ms/step - loss: 0.3955 - accuracy: 0.8506 - val_loss: 0.4199 - val_accuracy: 0.8252
Epoch 142/150
9/9 [==============================] - 0s 11ms/step - loss: 0.3894 - accuracy: 0.8383 - val_loss: 0.4209 - val_accuracy: 0.8252
Epoch 143/150
9/9 [==============================] - 0s 13ms/step - loss: 0.3929 - accuracy: 0.8366 - val_loss: 0.4209 - val_accuracy: 0.8252
Epoch 144/150
9/9 [==============================] - 0s 13ms/step - loss: 0.3751 - accuracy: 0.8524 - val_loss: 0.4193 - val_accuracy: 0.8322
Epoch 145/150
9/9 [==============================] - 0s 14ms/step - loss: 0.3860 - accuracy: 0.8383 - val_loss: 0.4186 - val_accuracy: 0.8322
Epoch 146/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4020 - accuracy: 0.8278 - val_loss: 0.4188 - val_accuracy: 0.8322
Epoch 147/150
9/9 [==============================] - 0s 15ms/step - loss: 0.3784 - accuracy: 0.8401 - val_loss: 0.4177 - val_accuracy: 0.8322
Epoch 148/150
9/9 [==============================] - 0s 20ms/step - loss: 0.3929 - accuracy: 0.8313 - val_loss: 0.4187 - val_accuracy: 0.8322
Epoch 149/150
9/9 [==============================] - 0s 20ms/step - loss: 0.3879 - accuracy: 0.8541 - val_loss: 0.4181 - val_accuracy: 0.8322
Epoch 150/150
9/9 [==============================] - 0s 21ms/step - loss: 0.4142 - accuracy: 0.8172 - val_loss: 0.4178 - val_accuracy: 0.8322
Best: 0.832865 using {'batch_size': 64, 'dropout1': 0.3, 'dropout2': 0.2, 'lr': 0.0007}
Total runtime of the program is 7868.645040512085

Build Model with best parameters¶

In [ ]:
dask_model = create_model(batch_size=dask_result.best_params_['batch_size'],
                          lr=dask_result.best_params_['lr'],
                          dropout1=dask_result.best_params_['dropout1'],
                          dropout2=dask_result.best_params_['dropout2'])

optimizer = tf.keras.optimizers.Adamax(dask_result.best_params_['lr'])

dask_model.compile(loss='binary_crossentropy',
                   optimizer=optimizer,
                   metrics=['accuracy'])

dask_model.summary()
Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 dense (Dense)               (None, 128)               1920      
                                                                 
 dropout (Dropout)           (None, 128)               0         
                                                                 
 batch_normalization (BatchN  (None, 128)              512       
 ormalization)                                                   
                                                                 
 dense_1 (Dense)             (None, 64)                8256      
                                                                 
 dropout_1 (Dropout)         (None, 64)                0         
                                                                 
 batch_normalization_1 (Batc  (None, 64)               256       
 hNormalization)                                                 
                                                                 
 dense_2 (Dense)             (None, 1)                 65        
                                                                 
=================================================================
Total params: 11,009
Trainable params: 10,625
Non-trainable params: 384
_________________________________________________________________
In [ ]:
history_dask = dask_model.fit(x_train_scaled,
                            y_train,
                            epochs=150,
                            batch_size = dask_result.best_params_['batch_size'],
                            verbose=1,
                            validation_split=0.2)
Epoch 1/150
9/9 [==============================] - 4s 146ms/step - loss: 0.7529 - accuracy: 0.6397 - val_loss: 0.7019 - val_accuracy: 0.5245
Epoch 2/150
9/9 [==============================] - 0s 38ms/step - loss: 0.5952 - accuracy: 0.7153 - val_loss: 0.6400 - val_accuracy: 0.6713
Epoch 3/150
9/9 [==============================] - 0s 35ms/step - loss: 0.5687 - accuracy: 0.7311 - val_loss: 0.5962 - val_accuracy: 0.7273
Epoch 4/150
9/9 [==============================] - 0s 31ms/step - loss: 0.5195 - accuracy: 0.7487 - val_loss: 0.5679 - val_accuracy: 0.7483
Epoch 5/150
9/9 [==============================] - 0s 23ms/step - loss: 0.5601 - accuracy: 0.7417 - val_loss: 0.5480 - val_accuracy: 0.7692
Epoch 6/150
9/9 [==============================] - 0s 42ms/step - loss: 0.4918 - accuracy: 0.7768 - val_loss: 0.5310 - val_accuracy: 0.7972
Epoch 7/150
9/9 [==============================] - 0s 34ms/step - loss: 0.5149 - accuracy: 0.7540 - val_loss: 0.5162 - val_accuracy: 0.7902
Epoch 8/150
9/9 [==============================] - 0s 27ms/step - loss: 0.4908 - accuracy: 0.7733 - val_loss: 0.5029 - val_accuracy: 0.8042
Epoch 9/150
9/9 [==============================] - 0s 38ms/step - loss: 0.4915 - accuracy: 0.7909 - val_loss: 0.4927 - val_accuracy: 0.7972
Epoch 10/150
9/9 [==============================] - 0s 28ms/step - loss: 0.4960 - accuracy: 0.7944 - val_loss: 0.4840 - val_accuracy: 0.7972
Epoch 11/150
9/9 [==============================] - 0s 35ms/step - loss: 0.4733 - accuracy: 0.7979 - val_loss: 0.4766 - val_accuracy: 0.8112
Epoch 12/150
9/9 [==============================] - 0s 32ms/step - loss: 0.4609 - accuracy: 0.7891 - val_loss: 0.4702 - val_accuracy: 0.8182
Epoch 13/150
9/9 [==============================] - 0s 31ms/step - loss: 0.4792 - accuracy: 0.7891 - val_loss: 0.4640 - val_accuracy: 0.8252
Epoch 14/150
9/9 [==============================] - 0s 30ms/step - loss: 0.4843 - accuracy: 0.8014 - val_loss: 0.4577 - val_accuracy: 0.8252
Epoch 15/150
9/9 [==============================] - 0s 49ms/step - loss: 0.4552 - accuracy: 0.8207 - val_loss: 0.4525 - val_accuracy: 0.8322
Epoch 16/150
9/9 [==============================] - 0s 24ms/step - loss: 0.4943 - accuracy: 0.7856 - val_loss: 0.4471 - val_accuracy: 0.8322
Epoch 17/150
9/9 [==============================] - 0s 36ms/step - loss: 0.4796 - accuracy: 0.7926 - val_loss: 0.4414 - val_accuracy: 0.8322
Epoch 18/150
9/9 [==============================] - 0s 36ms/step - loss: 0.4503 - accuracy: 0.7891 - val_loss: 0.4370 - val_accuracy: 0.8322
Epoch 19/150
9/9 [==============================] - 0s 27ms/step - loss: 0.4732 - accuracy: 0.7891 - val_loss: 0.4337 - val_accuracy: 0.8322
Epoch 20/150
9/9 [==============================] - 0s 33ms/step - loss: 0.4897 - accuracy: 0.7768 - val_loss: 0.4307 - val_accuracy: 0.8392
Epoch 21/150
9/9 [==============================] - 0s 34ms/step - loss: 0.4179 - accuracy: 0.8225 - val_loss: 0.4279 - val_accuracy: 0.8392
Epoch 22/150
9/9 [==============================] - 0s 30ms/step - loss: 0.4502 - accuracy: 0.8067 - val_loss: 0.4246 - val_accuracy: 0.8392
Epoch 23/150
9/9 [==============================] - 0s 31ms/step - loss: 0.4490 - accuracy: 0.8172 - val_loss: 0.4213 - val_accuracy: 0.8322
Epoch 24/150
9/9 [==============================] - 0s 34ms/step - loss: 0.4652 - accuracy: 0.8014 - val_loss: 0.4194 - val_accuracy: 0.8322
Epoch 25/150
9/9 [==============================] - 0s 30ms/step - loss: 0.4634 - accuracy: 0.8084 - val_loss: 0.4177 - val_accuracy: 0.8322
Epoch 26/150
9/9 [==============================] - 0s 30ms/step - loss: 0.4457 - accuracy: 0.8172 - val_loss: 0.4169 - val_accuracy: 0.8322
Epoch 27/150
9/9 [==============================] - 0s 23ms/step - loss: 0.4758 - accuracy: 0.8067 - val_loss: 0.4166 - val_accuracy: 0.8252
Epoch 28/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4152 - accuracy: 0.8190 - val_loss: 0.4154 - val_accuracy: 0.8252
Epoch 29/150
9/9 [==============================] - 0s 18ms/step - loss: 0.4728 - accuracy: 0.8049 - val_loss: 0.4149 - val_accuracy: 0.8252
Epoch 30/150
9/9 [==============================] - 0s 18ms/step - loss: 0.4513 - accuracy: 0.8084 - val_loss: 0.4145 - val_accuracy: 0.8252
Epoch 31/150
9/9 [==============================] - 0s 23ms/step - loss: 0.4402 - accuracy: 0.8155 - val_loss: 0.4140 - val_accuracy: 0.8322
Epoch 32/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4102 - accuracy: 0.8260 - val_loss: 0.4141 - val_accuracy: 0.8252
Epoch 33/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4221 - accuracy: 0.8155 - val_loss: 0.4137 - val_accuracy: 0.8322
Epoch 34/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4287 - accuracy: 0.8330 - val_loss: 0.4147 - val_accuracy: 0.8322
Epoch 35/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4442 - accuracy: 0.8120 - val_loss: 0.4140 - val_accuracy: 0.8322
Epoch 36/150
9/9 [==============================] - 0s 15ms/step - loss: 0.4260 - accuracy: 0.8225 - val_loss: 0.4131 - val_accuracy: 0.8322
Epoch 37/150
9/9 [==============================] - 0s 20ms/step - loss: 0.4455 - accuracy: 0.8313 - val_loss: 0.4127 - val_accuracy: 0.8322
Epoch 38/150
9/9 [==============================] - 0s 11ms/step - loss: 0.4424 - accuracy: 0.8067 - val_loss: 0.4120 - val_accuracy: 0.8392
Epoch 39/150
9/9 [==============================] - 0s 12ms/step - loss: 0.4309 - accuracy: 0.8260 - val_loss: 0.4118 - val_accuracy: 0.8392
Epoch 40/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4595 - accuracy: 0.8190 - val_loss: 0.4122 - val_accuracy: 0.8392
Epoch 41/150
9/9 [==============================] - 0s 18ms/step - loss: 0.4149 - accuracy: 0.8190 - val_loss: 0.4128 - val_accuracy: 0.8392
Epoch 42/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4281 - accuracy: 0.8049 - val_loss: 0.4129 - val_accuracy: 0.8392
Epoch 43/150
9/9 [==============================] - 0s 28ms/step - loss: 0.4193 - accuracy: 0.8260 - val_loss: 0.4130 - val_accuracy: 0.8392
Epoch 44/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4195 - accuracy: 0.8330 - val_loss: 0.4137 - val_accuracy: 0.8392
Epoch 45/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4308 - accuracy: 0.8102 - val_loss: 0.4147 - val_accuracy: 0.8392
Epoch 46/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4176 - accuracy: 0.8243 - val_loss: 0.4160 - val_accuracy: 0.8392
Epoch 47/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4098 - accuracy: 0.8260 - val_loss: 0.4159 - val_accuracy: 0.8322
Epoch 48/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4358 - accuracy: 0.8190 - val_loss: 0.4155 - val_accuracy: 0.8322
Epoch 49/150
9/9 [==============================] - 0s 18ms/step - loss: 0.4269 - accuracy: 0.8295 - val_loss: 0.4151 - val_accuracy: 0.8252
Epoch 50/150
9/9 [==============================] - 0s 20ms/step - loss: 0.4398 - accuracy: 0.8155 - val_loss: 0.4158 - val_accuracy: 0.8182
Epoch 51/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4153 - accuracy: 0.8313 - val_loss: 0.4168 - val_accuracy: 0.8182
Epoch 52/150
9/9 [==============================] - 0s 16ms/step - loss: 0.4215 - accuracy: 0.8172 - val_loss: 0.4167 - val_accuracy: 0.8182
Epoch 53/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4037 - accuracy: 0.8295 - val_loss: 0.4176 - val_accuracy: 0.8252
Epoch 54/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4053 - accuracy: 0.8383 - val_loss: 0.4169 - val_accuracy: 0.8392
Epoch 55/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4220 - accuracy: 0.8278 - val_loss: 0.4169 - val_accuracy: 0.8392
Epoch 56/150
9/9 [==============================] - 0s 15ms/step - loss: 0.4359 - accuracy: 0.8172 - val_loss: 0.4169 - val_accuracy: 0.8322
Epoch 57/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4200 - accuracy: 0.8348 - val_loss: 0.4164 - val_accuracy: 0.8392
Epoch 58/150
9/9 [==============================] - 0s 16ms/step - loss: 0.4208 - accuracy: 0.8243 - val_loss: 0.4159 - val_accuracy: 0.8322
Epoch 59/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4123 - accuracy: 0.8295 - val_loss: 0.4170 - val_accuracy: 0.8322
Epoch 60/150
9/9 [==============================] - 0s 15ms/step - loss: 0.4225 - accuracy: 0.8278 - val_loss: 0.4184 - val_accuracy: 0.8322
Epoch 61/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4237 - accuracy: 0.8207 - val_loss: 0.4184 - val_accuracy: 0.8322
Epoch 62/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4272 - accuracy: 0.8172 - val_loss: 0.4190 - val_accuracy: 0.8322
Epoch 63/150
9/9 [==============================] - 0s 21ms/step - loss: 0.4075 - accuracy: 0.8225 - val_loss: 0.4189 - val_accuracy: 0.8322
Epoch 64/150
9/9 [==============================] - 0s 18ms/step - loss: 0.4177 - accuracy: 0.8260 - val_loss: 0.4188 - val_accuracy: 0.8322
Epoch 65/150
9/9 [==============================] - 0s 17ms/step - loss: 0.4046 - accuracy: 0.8225 - val_loss: 0.4188 - val_accuracy: 0.8322
Epoch 66/150
9/9 [==============================] - 0s 21ms/step - loss: 0.4339 - accuracy: 0.8120 - val_loss: 0.4189 - val_accuracy: 0.8322
Epoch 67/150
9/9 [==============================] - 0s 43ms/step - loss: 0.4177 - accuracy: 0.8172 - val_loss: 0.4192 - val_accuracy: 0.8322
Epoch 68/150
9/9 [==============================] - 0s 48ms/step - loss: 0.3959 - accuracy: 0.8366 - val_loss: 0.4183 - val_accuracy: 0.8322
Epoch 69/150
9/9 [==============================] - 0s 41ms/step - loss: 0.4165 - accuracy: 0.8313 - val_loss: 0.4189 - val_accuracy: 0.8322
Epoch 70/150
9/9 [==============================] - 0s 35ms/step - loss: 0.3829 - accuracy: 0.8366 - val_loss: 0.4192 - val_accuracy: 0.8392
Epoch 71/150
9/9 [==============================] - 0s 42ms/step - loss: 0.4228 - accuracy: 0.8295 - val_loss: 0.4181 - val_accuracy: 0.8392
Epoch 72/150
9/9 [==============================] - 0s 41ms/step - loss: 0.4127 - accuracy: 0.8172 - val_loss: 0.4181 - val_accuracy: 0.8392
Epoch 73/150
9/9 [==============================] - 0s 41ms/step - loss: 0.4062 - accuracy: 0.8330 - val_loss: 0.4166 - val_accuracy: 0.8392
Epoch 74/150
9/9 [==============================] - 0s 35ms/step - loss: 0.4137 - accuracy: 0.8295 - val_loss: 0.4167 - val_accuracy: 0.8392
Epoch 75/150
9/9 [==============================] - 0s 45ms/step - loss: 0.4187 - accuracy: 0.8225 - val_loss: 0.4169 - val_accuracy: 0.8392
Epoch 76/150
9/9 [==============================] - 0s 47ms/step - loss: 0.4034 - accuracy: 0.8366 - val_loss: 0.4173 - val_accuracy: 0.8392
Epoch 77/150
9/9 [==============================] - 0s 26ms/step - loss: 0.4042 - accuracy: 0.8295 - val_loss: 0.4179 - val_accuracy: 0.8392
Epoch 78/150
9/9 [==============================] - 0s 31ms/step - loss: 0.3957 - accuracy: 0.8295 - val_loss: 0.4198 - val_accuracy: 0.8392
Epoch 79/150
9/9 [==============================] - 0s 30ms/step - loss: 0.3748 - accuracy: 0.8471 - val_loss: 0.4205 - val_accuracy: 0.8392
Epoch 80/150
9/9 [==============================] - 0s 37ms/step - loss: 0.4006 - accuracy: 0.8330 - val_loss: 0.4203 - val_accuracy: 0.8392
Epoch 81/150
9/9 [==============================] - 0s 30ms/step - loss: 0.4164 - accuracy: 0.8155 - val_loss: 0.4203 - val_accuracy: 0.8392
Epoch 82/150
9/9 [==============================] - 0s 37ms/step - loss: 0.3970 - accuracy: 0.8366 - val_loss: 0.4197 - val_accuracy: 0.8392
Epoch 83/150
9/9 [==============================] - 0s 20ms/step - loss: 0.4081 - accuracy: 0.8366 - val_loss: 0.4199 - val_accuracy: 0.8392
Epoch 84/150
9/9 [==============================] - 0s 28ms/step - loss: 0.4051 - accuracy: 0.8172 - val_loss: 0.4190 - val_accuracy: 0.8392
Epoch 85/150
9/9 [==============================] - 0s 24ms/step - loss: 0.4143 - accuracy: 0.8330 - val_loss: 0.4190 - val_accuracy: 0.8392
Epoch 86/150
9/9 [==============================] - 0s 21ms/step - loss: 0.4043 - accuracy: 0.8295 - val_loss: 0.4187 - val_accuracy: 0.8392
Epoch 87/150
9/9 [==============================] - 0s 17ms/step - loss: 0.3993 - accuracy: 0.8172 - val_loss: 0.4185 - val_accuracy: 0.8392
Epoch 88/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4083 - accuracy: 0.8383 - val_loss: 0.4172 - val_accuracy: 0.8392
Epoch 89/150
9/9 [==============================] - 0s 21ms/step - loss: 0.4054 - accuracy: 0.8313 - val_loss: 0.4169 - val_accuracy: 0.8392
Epoch 90/150
9/9 [==============================] - 0s 27ms/step - loss: 0.3985 - accuracy: 0.8313 - val_loss: 0.4184 - val_accuracy: 0.8392
Epoch 91/150
9/9 [==============================] - 0s 34ms/step - loss: 0.3980 - accuracy: 0.8330 - val_loss: 0.4193 - val_accuracy: 0.8392
Epoch 92/150
9/9 [==============================] - 0s 32ms/step - loss: 0.3863 - accuracy: 0.8366 - val_loss: 0.4216 - val_accuracy: 0.8392
Epoch 93/150
9/9 [==============================] - 0s 30ms/step - loss: 0.4070 - accuracy: 0.8471 - val_loss: 0.4227 - val_accuracy: 0.8392
Epoch 94/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4123 - accuracy: 0.8383 - val_loss: 0.4230 - val_accuracy: 0.8392
Epoch 95/150
9/9 [==============================] - 0s 26ms/step - loss: 0.4238 - accuracy: 0.8313 - val_loss: 0.4223 - val_accuracy: 0.8392
Epoch 96/150
9/9 [==============================] - 0s 32ms/step - loss: 0.4160 - accuracy: 0.8225 - val_loss: 0.4212 - val_accuracy: 0.8392
Epoch 97/150
9/9 [==============================] - 0s 28ms/step - loss: 0.4151 - accuracy: 0.8348 - val_loss: 0.4219 - val_accuracy: 0.8322
Epoch 98/150
9/9 [==============================] - 0s 32ms/step - loss: 0.3886 - accuracy: 0.8401 - val_loss: 0.4226 - val_accuracy: 0.8322
Epoch 99/150
9/9 [==============================] - 0s 21ms/step - loss: 0.3956 - accuracy: 0.8330 - val_loss: 0.4223 - val_accuracy: 0.8322
Epoch 100/150
9/9 [==============================] - 0s 25ms/step - loss: 0.4108 - accuracy: 0.8243 - val_loss: 0.4215 - val_accuracy: 0.8392
Epoch 101/150
9/9 [==============================] - 0s 25ms/step - loss: 0.3855 - accuracy: 0.8401 - val_loss: 0.4214 - val_accuracy: 0.8392
Epoch 102/150
9/9 [==============================] - 0s 24ms/step - loss: 0.4081 - accuracy: 0.8383 - val_loss: 0.4215 - val_accuracy: 0.8392
Epoch 103/150
9/9 [==============================] - 0s 24ms/step - loss: 0.3847 - accuracy: 0.8559 - val_loss: 0.4219 - val_accuracy: 0.8392
Epoch 104/150
9/9 [==============================] - 0s 25ms/step - loss: 0.4071 - accuracy: 0.8295 - val_loss: 0.4229 - val_accuracy: 0.8392
Epoch 105/150
9/9 [==============================] - 0s 18ms/step - loss: 0.4287 - accuracy: 0.8330 - val_loss: 0.4233 - val_accuracy: 0.8392
Epoch 106/150
9/9 [==============================] - 0s 30ms/step - loss: 0.4051 - accuracy: 0.8383 - val_loss: 0.4240 - val_accuracy: 0.8392
Epoch 107/150
9/9 [==============================] - 0s 30ms/step - loss: 0.3925 - accuracy: 0.8313 - val_loss: 0.4252 - val_accuracy: 0.8322
Epoch 108/150
9/9 [==============================] - 0s 31ms/step - loss: 0.3937 - accuracy: 0.8313 - val_loss: 0.4249 - val_accuracy: 0.8322
Epoch 109/150
9/9 [==============================] - 0s 19ms/step - loss: 0.4280 - accuracy: 0.8243 - val_loss: 0.4233 - val_accuracy: 0.8392
Epoch 110/150
9/9 [==============================] - 0s 19ms/step - loss: 0.3922 - accuracy: 0.8453 - val_loss: 0.4219 - val_accuracy: 0.8392
Epoch 111/150
9/9 [==============================] - 0s 16ms/step - loss: 0.3947 - accuracy: 0.8278 - val_loss: 0.4215 - val_accuracy: 0.8392
Epoch 112/150
9/9 [==============================] - 0s 23ms/step - loss: 0.3885 - accuracy: 0.8401 - val_loss: 0.4226 - val_accuracy: 0.8392
Epoch 113/150
9/9 [==============================] - 0s 23ms/step - loss: 0.4001 - accuracy: 0.8418 - val_loss: 0.4223 - val_accuracy: 0.8392
Epoch 114/150
9/9 [==============================] - 0s 23ms/step - loss: 0.4018 - accuracy: 0.8278 - val_loss: 0.4218 - val_accuracy: 0.8392
Epoch 115/150
9/9 [==============================] - 0s 22ms/step - loss: 0.4029 - accuracy: 0.8313 - val_loss: 0.4217 - val_accuracy: 0.8392
Epoch 116/150
9/9 [==============================] - 0s 25ms/step - loss: 0.4035 - accuracy: 0.8401 - val_loss: 0.4217 - val_accuracy: 0.8392
Epoch 117/150
9/9 [==============================] - 0s 22ms/step - loss: 0.3706 - accuracy: 0.8559 - val_loss: 0.4225 - val_accuracy: 0.8322
Epoch 118/150
9/9 [==============================] - 0s 39ms/step - loss: 0.4033 - accuracy: 0.8330 - val_loss: 0.4227 - val_accuracy: 0.8322
Epoch 119/150
9/9 [==============================] - 0s 39ms/step - loss: 0.3803 - accuracy: 0.8313 - val_loss: 0.4225 - val_accuracy: 0.8322
Epoch 120/150
9/9 [==============================] - 0s 40ms/step - loss: 0.3740 - accuracy: 0.8401 - val_loss: 0.4230 - val_accuracy: 0.8322
Epoch 121/150
9/9 [==============================] - 0s 33ms/step - loss: 0.3965 - accuracy: 0.8401 - val_loss: 0.4232 - val_accuracy: 0.8322
Epoch 122/150
9/9 [==============================] - 0s 30ms/step - loss: 0.3816 - accuracy: 0.8366 - val_loss: 0.4230 - val_accuracy: 0.8322
Epoch 123/150
9/9 [==============================] - 0s 38ms/step - loss: 0.3959 - accuracy: 0.8366 - val_loss: 0.4233 - val_accuracy: 0.8322
Epoch 124/150
9/9 [==============================] - 0s 29ms/step - loss: 0.3980 - accuracy: 0.8489 - val_loss: 0.4235 - val_accuracy: 0.8392
Epoch 125/150
9/9 [==============================] - 0s 28ms/step - loss: 0.3889 - accuracy: 0.8418 - val_loss: 0.4236 - val_accuracy: 0.8252
Epoch 126/150
9/9 [==============================] - 0s 38ms/step - loss: 0.3858 - accuracy: 0.8366 - val_loss: 0.4229 - val_accuracy: 0.8322
Epoch 127/150
9/9 [==============================] - 0s 29ms/step - loss: 0.3980 - accuracy: 0.8436 - val_loss: 0.4234 - val_accuracy: 0.8322
Epoch 128/150
9/9 [==============================] - 0s 26ms/step - loss: 0.3898 - accuracy: 0.8207 - val_loss: 0.4231 - val_accuracy: 0.8322
Epoch 129/150
9/9 [==============================] - 0s 31ms/step - loss: 0.3880 - accuracy: 0.8243 - val_loss: 0.4229 - val_accuracy: 0.8322
Epoch 130/150
9/9 [==============================] - 0s 33ms/step - loss: 0.3789 - accuracy: 0.8576 - val_loss: 0.4225 - val_accuracy: 0.8392
Epoch 131/150
9/9 [==============================] - 0s 42ms/step - loss: 0.4071 - accuracy: 0.8418 - val_loss: 0.4229 - val_accuracy: 0.8392
Epoch 132/150
9/9 [==============================] - 0s 50ms/step - loss: 0.3812 - accuracy: 0.8559 - val_loss: 0.4225 - val_accuracy: 0.8392
Epoch 133/150
9/9 [==============================] - 0s 50ms/step - loss: 0.4068 - accuracy: 0.8330 - val_loss: 0.4215 - val_accuracy: 0.8392
Epoch 134/150
9/9 [==============================] - 0s 52ms/step - loss: 0.4034 - accuracy: 0.8295 - val_loss: 0.4213 - val_accuracy: 0.8462
Epoch 135/150
9/9 [==============================] - 0s 50ms/step - loss: 0.3919 - accuracy: 0.8383 - val_loss: 0.4219 - val_accuracy: 0.8462
Epoch 136/150
9/9 [==============================] - 0s 43ms/step - loss: 0.3629 - accuracy: 0.8647 - val_loss: 0.4228 - val_accuracy: 0.8462
Epoch 137/150
9/9 [==============================] - 0s 53ms/step - loss: 0.3961 - accuracy: 0.8366 - val_loss: 0.4232 - val_accuracy: 0.8462
Epoch 138/150
9/9 [==============================] - 1s 62ms/step - loss: 0.4063 - accuracy: 0.8418 - val_loss: 0.4247 - val_accuracy: 0.8392
Epoch 139/150
9/9 [==============================] - 0s 54ms/step - loss: 0.3786 - accuracy: 0.8348 - val_loss: 0.4251 - val_accuracy: 0.8392
Epoch 140/150
9/9 [==============================] - 0s 22ms/step - loss: 0.3857 - accuracy: 0.8418 - val_loss: 0.4249 - val_accuracy: 0.8392
Epoch 141/150
9/9 [==============================] - 0s 22ms/step - loss: 0.3974 - accuracy: 0.8453 - val_loss: 0.4254 - val_accuracy: 0.8322
Epoch 142/150
9/9 [==============================] - 0s 29ms/step - loss: 0.3895 - accuracy: 0.8401 - val_loss: 0.4248 - val_accuracy: 0.8322
Epoch 143/150
9/9 [==============================] - 0s 31ms/step - loss: 0.3801 - accuracy: 0.8471 - val_loss: 0.4245 - val_accuracy: 0.8322
Epoch 144/150
9/9 [==============================] - 0s 34ms/step - loss: 0.3718 - accuracy: 0.8348 - val_loss: 0.4240 - val_accuracy: 0.8322
Epoch 145/150
9/9 [==============================] - 0s 28ms/step - loss: 0.3972 - accuracy: 0.8366 - val_loss: 0.4240 - val_accuracy: 0.8392
Epoch 146/150
9/9 [==============================] - 0s 32ms/step - loss: 0.3858 - accuracy: 0.8471 - val_loss: 0.4247 - val_accuracy: 0.8392
Epoch 147/150
9/9 [==============================] - 0s 36ms/step - loss: 0.3772 - accuracy: 0.8366 - val_loss: 0.4246 - val_accuracy: 0.8392
Epoch 148/150
9/9 [==============================] - 0s 27ms/step - loss: 0.3740 - accuracy: 0.8576 - val_loss: 0.4259 - val_accuracy: 0.8252
Epoch 149/150
9/9 [==============================] - 0s 29ms/step - loss: 0.3727 - accuracy: 0.8453 - val_loss: 0.4255 - val_accuracy: 0.8322
Epoch 150/150
9/9 [==============================] - 0s 29ms/step - loss: 0.3937 - accuracy: 0.8366 - val_loss: 0.4258 - val_accuracy: 0.8392

Model Accuracy and Loss with Epochs¶

In [ ]:
#Plotting Train Loss vs Validation Loss
plt.plot(history_dask.history['loss'])
plt.plot(history_dask.history['val_loss'])
plt.title('model loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend(['train', 'validation'], loc='upper left')
plt.show()
In [ ]:
#Plotting Epoch vs accuracy
plt.plot(history_dask.history['accuracy'])
plt.plot(history_dask.history['val_accuracy'])
plt.title('Accuracy vs Epochs')
plt.ylabel('Accuracy')
plt.xlabel('Epoch')
plt.legend(['Train', 'Validation'], loc='lower right')
plt.show()

Model Performance on training data¶

In [ ]:
# Using the model to make predictions on the training data
y_train_pred = dask_model.predict(x_train_scaled)

#Set the threshold of classification to be 0.5
y_train_pred = (y_train_pred > 0.5)

#Performance of model on training data
metrics_score(y_train,y_train_pred)
23/23 [==============================] - 0s 5ms/step
              precision    recall  f1-score   support

           0       0.84      0.96      0.89       443
           1       0.91      0.69      0.78       269

    accuracy                           0.86       712
   macro avg       0.87      0.82      0.84       712
weighted avg       0.86      0.86      0.85       712

Model Performance with validation data¶

In [ ]:
#Making prediction using the model on the validation data to peformance metric.
y_pred=dask_model.predict(x_test_scaled)

#Set the threshold of classification to be 0.5
y_pred = (y_pred > 0.5)

#Performance on validation data
metrics_score(y_test,y_pred)
6/6 [==============================] - 0s 7ms/step
              precision    recall  f1-score   support

           0       0.77      0.93      0.84       106
           1       0.86      0.59      0.70        73

    accuracy                           0.79       179
   macro avg       0.81      0.76      0.77       179
weighted avg       0.81      0.79      0.78       179

ROC-AUC Tuning¶

In [ ]:
# predict probabilities
yhatdask = dask_model.predict(x_test_scaled)

# keep probabilities for the positive outcome only
yhatdask = yhatdask[:, 0]

# calculate roc curves
fpr, tpr, thresholdsdask = roc_curve(y_test, yhatdask)

# calculate the g-mean for each threshold
gmeansdask = np.sqrt(tpr * (1-fpr))

# locate the index of the largest g-mean
ix = np.argmax(gmeansdask)
print('Best Threshold=%f, G-Mean=%.3f' % (thresholdsdask[ix], gmeansdask[ix]))

# plot the roc curve for the model
pyplot.plot([0,1], [0,1], linestyle='--', label='No Skill')
pyplot.plot(fpr, tpr, marker='.')
pyplot.scatter(fpr[ix], tpr[ix], marker='o', color='black', label='Best')

# axis labels
pyplot.xlabel('False Positive Rate')
pyplot.ylabel('True Positive Rate')
pyplot.legend()

# show the plot
pyplot.show()
6/6 [==============================] - 0s 4ms/step
Best Threshold=0.352301, G-Mean=0.769
In [ ]:
#Making the prediction using the test data
y_pred_e4=dask_model.predict(x_test_scaled)

#Using the threshold value to convert the predicted data into true or false statements. If the predicted data is higher than threshold, it will be labelled true.
y_pred_e4 = (y_pred_e4 > thresholdsdask[ix])

metrics_score(y_test, y_pred_e4)
6/6 [==============================] - 0s 4ms/step
              precision    recall  f1-score   support

           0       0.80      0.83      0.81       106
           1       0.74      0.70      0.72        73

    accuracy                           0.78       179
   macro avg       0.77      0.76      0.77       179
weighted avg       0.78      0.78      0.78       179

Observations¶

  • Model accuracy on validation data stopped improving after 40 epochs.
  • Accuracy on training data continues to improve after 40 epochs, resulting in more overfitting.
  • Performance of model is poorer than model 4, with an accuracy of 78% after ROC-AUC tuning.
  • It took ~2 hours to optimize this set of parameters

Model 6: Grid Search CV on Model 4 with batch normalization and dropout tuning¶

GridSearch Hyperparameter Tuning¶

In [166]:
backend.clear_session()
np.random.seed(42)
import random
random.seed(42)
tf.random.set_seed(42)
In [137]:
def create_model(lr,batch_size,dropout1,dropout2, momentum1, momentum2, epsilon1, epsilon2):
    # Fixing the seed for random number generators
    np.random.seed(42)

    # Initialize sequential model
    model = Sequential()
    model.add(Dense(64, activation='leaky_relu', input_dim = x_train.shape[1])) # Add the input layer and the first layer
    model.add(Dropout(dropout1))
    model.add(BatchNormalization(momentum = momentum1, epsilon = epsilon1))
    model.add(Dense(64,activation='leaky_relu'))
    model.add(Dropout(dropout2))
    model.add(BatchNormalization(momentum = momentum2, epsilon = epsilon2))
    model.add(Dense(1, activation='sigmoid'))

    #Defining the optimizer and learnign rate
    optimizer = Adamax(learning_rate = lr)

    #Using the settings for the sequential model above, create the model with the following algorithms
    model.compile(loss = 'binary_crossentropy',
                    optimizer = optimizer,
                    metrics=['accuracy'])

    return model
In [ ]:
from tensorflow.keras.wrappers.scikit_learn import KerasClassifier
from keras.callbacks import EarlyStopping

#Create the classifer with their default values
keras_estimator = KerasClassifier(build_fn=create_model,
                                  epochs = 150,
                                  batch_size = 0,
                                  verbose=1)

# Setting the parameters to search
param_grid = {'batch_size':[32, 64],
              "lr":[0.0003, 0.0005],
              'dropout1':[0.1, 0.2],
              'dropout2':[0.1, 0.2],
              'momentum1': [0.9, 0.95],
              'epsilon1': [0.01, 0.1],
              'momentum2': [0.9, 0.95],
              'epsilon2': [0.01, 0.1],}

kfold_splits = 3

early_stopping = EarlyStopping(monitor = 'val_loss',
                               patience = 5,
                               verbose = 1,
                               restore_best_weights=True)

# Defining the parameters for the gridsearchCV
grid = GridSearchCV(estimator=keras_estimator,
                     verbose=1,
                     cv=kfold_splits,
                     param_grid=param_grid,
                     n_jobs=-1)
In [ ]:
#There was an issue with the dattype not being numpy.float32, so I just converted it
x_train_scaled = np.asarray(x_train_scaled).astype(np.float32)
y_train = np.asarray(y_train).astype(np.float32)
In [ ]:
# Took 6 hours to run this fitting
grid_result = grid.fit(x_train_scaled,
                       y_train,
                       validation_split=0.2,
                       callbacks=[early_stopping],
                       verbose=1)

# Summarize results
print("Best: %f using %s" % (grid_result.best_score_, grid_result.best_params_))
Fitting 3 folds for each of 256 candidates, totalling 768 fits
Epoch 1/150
9/9 [==============================] - 3s 74ms/step - loss: 0.7463 - accuracy: 0.6011 - val_loss: 0.6213 - val_accuracy: 0.7273
Epoch 2/150
9/9 [==============================] - 0s 20ms/step - loss: 0.6511 - accuracy: 0.6714 - val_loss: 0.5884 - val_accuracy: 0.7413
Epoch 3/150
9/9 [==============================] - 0s 18ms/step - loss: 0.6395 - accuracy: 0.6819 - val_loss: 0.5563 - val_accuracy: 0.7203
Epoch 4/150
9/9 [==============================] - 0s 15ms/step - loss: 0.5869 - accuracy: 0.7047 - val_loss: 0.5310 - val_accuracy: 0.7343
Epoch 5/150
9/9 [==============================] - 0s 16ms/step - loss: 0.5522 - accuracy: 0.7346 - val_loss: 0.5112 - val_accuracy: 0.7622
Epoch 6/150
9/9 [==============================] - 0s 20ms/step - loss: 0.5276 - accuracy: 0.7452 - val_loss: 0.4939 - val_accuracy: 0.7622
Epoch 7/150
9/9 [==============================] - 0s 13ms/step - loss: 0.5228 - accuracy: 0.7645 - val_loss: 0.4802 - val_accuracy: 0.7762
Epoch 8/150
9/9 [==============================] - 0s 11ms/step - loss: 0.5315 - accuracy: 0.7399 - val_loss: 0.4719 - val_accuracy: 0.7762
Epoch 9/150
9/9 [==============================] - 0s 10ms/step - loss: 0.5076 - accuracy: 0.7504 - val_loss: 0.4656 - val_accuracy: 0.7762
Epoch 10/150
9/9 [==============================] - 0s 10ms/step - loss: 0.5180 - accuracy: 0.7645 - val_loss: 0.4594 - val_accuracy: 0.7972
Epoch 11/150
9/9 [==============================] - 0s 10ms/step - loss: 0.4967 - accuracy: 0.7698 - val_loss: 0.4531 - val_accuracy: 0.8042
Epoch 12/150
9/9 [==============================] - 0s 10ms/step - loss: 0.4982 - accuracy: 0.7786 - val_loss: 0.4513 - val_accuracy: 0.7902
Epoch 13/150
9/9 [==============================] - 0s 8ms/step - loss: 0.4870 - accuracy: 0.7944 - val_loss: 0.4465 - val_accuracy: 0.7902
Epoch 14/150
9/9 [==============================] - 0s 10ms/step - loss: 0.4915 - accuracy: 0.7803 - val_loss: 0.4430 - val_accuracy: 0.7622
Epoch 15/150
9/9 [==============================] - 0s 8ms/step - loss: 0.4920 - accuracy: 0.7856 - val_loss: 0.4395 - val_accuracy: 0.7622
Epoch 16/150
9/9 [==============================] - 0s 8ms/step - loss: 0.4595 - accuracy: 0.7891 - val_loss: 0.4380 - val_accuracy: 0.7622
Epoch 17/150
9/9 [==============================] - 0s 9ms/step - loss: 0.4681 - accuracy: 0.8014 - val_loss: 0.4385 - val_accuracy: 0.7622
Epoch 18/150
9/9 [==============================] - 0s 8ms/step - loss: 0.4829 - accuracy: 0.7750 - val_loss: 0.4346 - val_accuracy: 0.7972
Epoch 19/150
9/9 [==============================] - 0s 10ms/step - loss: 0.4881 - accuracy: 0.7873 - val_loss: 0.4344 - val_accuracy: 0.7762
Epoch 20/150
9/9 [==============================] - 0s 11ms/step - loss: 0.4666 - accuracy: 0.7768 - val_loss: 0.4332 - val_accuracy: 0.7902
Epoch 21/150
9/9 [==============================] - 0s 11ms/step - loss: 0.4529 - accuracy: 0.8067 - val_loss: 0.4334 - val_accuracy: 0.7972
Epoch 22/150
9/9 [==============================] - 0s 8ms/step - loss: 0.4394 - accuracy: 0.8102 - val_loss: 0.4351 - val_accuracy: 0.7902
Epoch 23/150
9/9 [==============================] - 0s 10ms/step - loss: 0.4518 - accuracy: 0.7891 - val_loss: 0.4333 - val_accuracy: 0.8042
Epoch 24/150
9/9 [==============================] - 0s 12ms/step - loss: 0.4607 - accuracy: 0.7856 - val_loss: 0.4316 - val_accuracy: 0.8112
Epoch 25/150
9/9 [==============================] - 0s 10ms/step - loss: 0.4567 - accuracy: 0.8243 - val_loss: 0.4301 - val_accuracy: 0.8112
Epoch 26/150
9/9 [==============================] - 0s 11ms/step - loss: 0.4694 - accuracy: 0.8049 - val_loss: 0.4285 - val_accuracy: 0.8112
Epoch 27/150
9/9 [==============================] - 0s 11ms/step - loss: 0.4398 - accuracy: 0.8084 - val_loss: 0.4280 - val_accuracy: 0.8112
Epoch 28/150
9/9 [==============================] - 0s 13ms/step - loss: 0.4321 - accuracy: 0.8278 - val_loss: 0.4272 - val_accuracy: 0.8112
Epoch 29/150
9/9 [==============================] - 0s 11ms/step - loss: 0.4311 - accuracy: 0.8067 - val_loss: 0.4262 - val_accuracy: 0.8112
Epoch 30/150
9/9 [==============================] - 0s 11ms/step - loss: 0.4494 - accuracy: 0.8084 - val_loss: 0.4244 - val_accuracy: 0.8112
Epoch 31/150
9/9 [==============================] - 0s 11ms/step - loss: 0.4400 - accuracy: 0.8102 - val_loss: 0.4234 - val_accuracy: 0.8112
Epoch 32/150
9/9 [==============================] - 0s 10ms/step - loss: 0.4306 - accuracy: 0.8120 - val_loss: 0.4226 - val_accuracy: 0.8112
Epoch 33/150
9/9 [==============================] - 0s 10ms/step - loss: 0.4372 - accuracy: 0.8172 - val_loss: 0.4237 - val_accuracy: 0.8112
Epoch 34/150
9/9 [==============================] - 0s 8ms/step - loss: 0.4529 - accuracy: 0.8084 - val_loss: 0.4249 - val_accuracy: 0.8112
Epoch 35/150
9/9 [==============================] - 0s 8ms/step - loss: 0.4393 - accuracy: 0.8155 - val_loss: 0.4234 - val_accuracy: 0.8112
Epoch 36/150
9/9 [==============================] - 0s 10ms/step - loss: 0.4247 - accuracy: 0.8313 - val_loss: 0.4219 - val_accuracy: 0.8112
Epoch 37/150
9/9 [==============================] - 0s 8ms/step - loss: 0.4340 - accuracy: 0.8155 - val_loss: 0.4200 - val_accuracy: 0.8112
Epoch 38/150
9/9 [==============================] - 0s 10ms/step - loss: 0.4316 - accuracy: 0.8102 - val_loss: 0.4179 - val_accuracy: 0.8112
Epoch 39/150
9/9 [==============================] - 0s 10ms/step - loss: 0.4631 - accuracy: 0.8102 - val_loss: 0.4172 - val_accuracy: 0.8112
Epoch 40/150
9/9 [==============================] - 0s 8ms/step - loss: 0.4309 - accuracy: 0.8190 - val_loss: 0.4176 - val_accuracy: 0.8112
Epoch 41/150
9/9 [==============================] - 0s 9ms/step - loss: 0.4458 - accuracy: 0.7979 - val_loss: 0.4154 - val_accuracy: 0.8182
Epoch 42/150
9/9 [==============================] - 0s 10ms/step - loss: 0.4358 - accuracy: 0.8102 - val_loss: 0.4167 - val_accuracy: 0.8112
Epoch 43/150
9/9 [==============================] - 0s 8ms/step - loss: 0.4360 - accuracy: 0.8172 - val_loss: 0.4167 - val_accuracy: 0.8182
Epoch 44/150
9/9 [==============================] - 0s 8ms/step - loss: 0.4508 - accuracy: 0.7944 - val_loss: 0.4168 - val_accuracy: 0.8112
Epoch 45/150
9/9 [==============================] - 0s 10ms/step - loss: 0.4456 - accuracy: 0.8102 - val_loss: 0.4182 - val_accuracy: 0.8042
Epoch 46/150
1/9 [==>...........................] - ETA: 0s - loss: 0.5094 - accuracy: 0.7969Restoring model weights from the end of the best epoch: 41.
9/9 [==============================] - 0s 10ms/step - loss: 0.4459 - accuracy: 0.8049 - val_loss: 0.4199 - val_accuracy: 0.8182
Epoch 46: early stopping
Best: 0.825881 using {'batch_size': 64, 'dropout1': 0.1, 'dropout2': 0.2, 'epsilon1': 0.01, 'epsilon2': 0.01, 'lr': 0.0005, 'momentum1': 0.95, 'momentum2': 0.95}

These are the optimized parameters:

  • Epoch 46: early stopping
  • Parameters: {'batch_size': 64, 'dropout1': 0.1, 'dropout2': 0.2, 'epsilon1': 0.01, 'epsilon2': 0.01, 'lr': 0.0005, 'momentum1': 0.95, 'momentum2': 0.95}
  • Best validation accuracy: 0.825881

Creating model with optimized parameters¶

In [167]:
grid_model = create_model(batch_size=32,
                          lr=0.0003,
                          dropout1=0.1,
                          dropout2=0.2,
                          momentum1=0.9,
                          epsilon1=0.1,
                          momentum2=0.95,
                          epsilon2=0.1)

optimizer = tf.keras.optimizers.Adamax(learning_rate = 0.0003)

grid_model.compile(loss='binary_crossentropy',
                   optimizer=optimizer,
                   metrics=['accuracy'])

grid_model.summary()
Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 dense (Dense)               (None, 64)                960       
                                                                 
 dropout (Dropout)           (None, 64)                0         
                                                                 
 batch_normalization (BatchN  (None, 64)               256       
 ormalization)                                                   
                                                                 
 dense_1 (Dense)             (None, 64)                4160      
                                                                 
 dropout_1 (Dropout)         (None, 64)                0         
                                                                 
 batch_normalization_1 (Batc  (None, 64)               256       
 hNormalization)                                                 
                                                                 
 dense_2 (Dense)             (None, 1)                 65        
                                                                 
=================================================================
Total params: 5,697
Trainable params: 5,441
Non-trainable params: 256
_________________________________________________________________
In [168]:
history_grid = grid_model.fit(x_train_scaled,
                            y_train,
                            epochs=50,
                            batch_size = 32,
                            verbose=1,
                            validation_split=0.2)
Epoch 1/50
18/18 [==============================] - 2s 19ms/step - loss: 0.7054 - accuracy: 0.6344 - val_loss: 0.6255 - val_accuracy: 0.6923
Epoch 2/50
18/18 [==============================] - 0s 5ms/step - loss: 0.6332 - accuracy: 0.6766 - val_loss: 0.5773 - val_accuracy: 0.6993
Epoch 3/50
18/18 [==============================] - 0s 5ms/step - loss: 0.6048 - accuracy: 0.6819 - val_loss: 0.5526 - val_accuracy: 0.7133
Epoch 4/50
18/18 [==============================] - 0s 5ms/step - loss: 0.5862 - accuracy: 0.6942 - val_loss: 0.5380 - val_accuracy: 0.7063
Epoch 5/50
18/18 [==============================] - 0s 7ms/step - loss: 0.5863 - accuracy: 0.7118 - val_loss: 0.5124 - val_accuracy: 0.7273
Epoch 6/50
18/18 [==============================] - 0s 5ms/step - loss: 0.5400 - accuracy: 0.7452 - val_loss: 0.5034 - val_accuracy: 0.7413
Epoch 7/50
18/18 [==============================] - 0s 6ms/step - loss: 0.5192 - accuracy: 0.7417 - val_loss: 0.4895 - val_accuracy: 0.7483
Epoch 8/50
18/18 [==============================] - 0s 5ms/step - loss: 0.5464 - accuracy: 0.7346 - val_loss: 0.4818 - val_accuracy: 0.7552
Epoch 9/50
18/18 [==============================] - 0s 5ms/step - loss: 0.5170 - accuracy: 0.7645 - val_loss: 0.4732 - val_accuracy: 0.7832
Epoch 10/50
18/18 [==============================] - 0s 6ms/step - loss: 0.5291 - accuracy: 0.7487 - val_loss: 0.4673 - val_accuracy: 0.7762
Epoch 11/50
18/18 [==============================] - 0s 5ms/step - loss: 0.5164 - accuracy: 0.7469 - val_loss: 0.4623 - val_accuracy: 0.7762
Epoch 12/50
18/18 [==============================] - 0s 6ms/step - loss: 0.5049 - accuracy: 0.7557 - val_loss: 0.4647 - val_accuracy: 0.7832
Epoch 13/50
18/18 [==============================] - 0s 5ms/step - loss: 0.4797 - accuracy: 0.7909 - val_loss: 0.4520 - val_accuracy: 0.7902
Epoch 14/50
18/18 [==============================] - 0s 5ms/step - loss: 0.5011 - accuracy: 0.7803 - val_loss: 0.4483 - val_accuracy: 0.7902
Epoch 15/50
18/18 [==============================] - 0s 8ms/step - loss: 0.5032 - accuracy: 0.7522 - val_loss: 0.4455 - val_accuracy: 0.7972
Epoch 16/50
18/18 [==============================] - 0s 8ms/step - loss: 0.4840 - accuracy: 0.7873 - val_loss: 0.4452 - val_accuracy: 0.7902
Epoch 17/50
18/18 [==============================] - 0s 8ms/step - loss: 0.4853 - accuracy: 0.7891 - val_loss: 0.4404 - val_accuracy: 0.7902
Epoch 18/50
18/18 [==============================] - 0s 8ms/step - loss: 0.4729 - accuracy: 0.7996 - val_loss: 0.4354 - val_accuracy: 0.7902
Epoch 19/50
18/18 [==============================] - 0s 7ms/step - loss: 0.4674 - accuracy: 0.7979 - val_loss: 0.4373 - val_accuracy: 0.7832
Epoch 20/50
18/18 [==============================] - 0s 8ms/step - loss: 0.4780 - accuracy: 0.7786 - val_loss: 0.4361 - val_accuracy: 0.7832
Epoch 21/50
18/18 [==============================] - 0s 8ms/step - loss: 0.4601 - accuracy: 0.8172 - val_loss: 0.4378 - val_accuracy: 0.7692
Epoch 22/50
18/18 [==============================] - 0s 9ms/step - loss: 0.4828 - accuracy: 0.7891 - val_loss: 0.4382 - val_accuracy: 0.7762
Epoch 23/50
18/18 [==============================] - 0s 9ms/step - loss: 0.4767 - accuracy: 0.7821 - val_loss: 0.4318 - val_accuracy: 0.7972
Epoch 24/50
18/18 [==============================] - 0s 8ms/step - loss: 0.4581 - accuracy: 0.7944 - val_loss: 0.4312 - val_accuracy: 0.7832
Epoch 25/50
18/18 [==============================] - 0s 9ms/step - loss: 0.4819 - accuracy: 0.7909 - val_loss: 0.4291 - val_accuracy: 0.7902
Epoch 26/50
18/18 [==============================] - 0s 8ms/step - loss: 0.4761 - accuracy: 0.7944 - val_loss: 0.4241 - val_accuracy: 0.8042
Epoch 27/50
18/18 [==============================] - 0s 8ms/step - loss: 0.4670 - accuracy: 0.7944 - val_loss: 0.4272 - val_accuracy: 0.7972
Epoch 28/50
18/18 [==============================] - 0s 7ms/step - loss: 0.4579 - accuracy: 0.8049 - val_loss: 0.4254 - val_accuracy: 0.8042
Epoch 29/50
18/18 [==============================] - 0s 8ms/step - loss: 0.4373 - accuracy: 0.8084 - val_loss: 0.4304 - val_accuracy: 0.8042
Epoch 30/50
18/18 [==============================] - 0s 7ms/step - loss: 0.4407 - accuracy: 0.8084 - val_loss: 0.4248 - val_accuracy: 0.8042
Epoch 31/50
18/18 [==============================] - 0s 7ms/step - loss: 0.4510 - accuracy: 0.8084 - val_loss: 0.4222 - val_accuracy: 0.8042
Epoch 32/50
18/18 [==============================] - 0s 7ms/step - loss: 0.4439 - accuracy: 0.8014 - val_loss: 0.4227 - val_accuracy: 0.8042
Epoch 33/50
18/18 [==============================] - 0s 7ms/step - loss: 0.4325 - accuracy: 0.8137 - val_loss: 0.4279 - val_accuracy: 0.8042
Epoch 34/50
18/18 [==============================] - 0s 9ms/step - loss: 0.4402 - accuracy: 0.8102 - val_loss: 0.4290 - val_accuracy: 0.7972
Epoch 35/50
18/18 [==============================] - 0s 8ms/step - loss: 0.4420 - accuracy: 0.8084 - val_loss: 0.4253 - val_accuracy: 0.7972
Epoch 36/50
18/18 [==============================] - 0s 10ms/step - loss: 0.4346 - accuracy: 0.8190 - val_loss: 0.4231 - val_accuracy: 0.8042
Epoch 37/50
18/18 [==============================] - 0s 9ms/step - loss: 0.4357 - accuracy: 0.8120 - val_loss: 0.4209 - val_accuracy: 0.8042
Epoch 38/50
18/18 [==============================] - 0s 9ms/step - loss: 0.4537 - accuracy: 0.8260 - val_loss: 0.4212 - val_accuracy: 0.8112
Epoch 39/50
18/18 [==============================] - 0s 9ms/step - loss: 0.4508 - accuracy: 0.8120 - val_loss: 0.4222 - val_accuracy: 0.8112
Epoch 40/50
18/18 [==============================] - 0s 6ms/step - loss: 0.4371 - accuracy: 0.8225 - val_loss: 0.4198 - val_accuracy: 0.8042
Epoch 41/50
18/18 [==============================] - 0s 6ms/step - loss: 0.4394 - accuracy: 0.8032 - val_loss: 0.4179 - val_accuracy: 0.8042
Epoch 42/50
18/18 [==============================] - 0s 5ms/step - loss: 0.4425 - accuracy: 0.8137 - val_loss: 0.4194 - val_accuracy: 0.8112
Epoch 43/50
18/18 [==============================] - 0s 5ms/step - loss: 0.4289 - accuracy: 0.8172 - val_loss: 0.4221 - val_accuracy: 0.8112
Epoch 44/50
18/18 [==============================] - 0s 7ms/step - loss: 0.4577 - accuracy: 0.7926 - val_loss: 0.4189 - val_accuracy: 0.8112
Epoch 45/50
18/18 [==============================] - 0s 6ms/step - loss: 0.4582 - accuracy: 0.8032 - val_loss: 0.4224 - val_accuracy: 0.8112
Epoch 46/50
18/18 [==============================] - 0s 6ms/step - loss: 0.4343 - accuracy: 0.8260 - val_loss: 0.4229 - val_accuracy: 0.8182
Epoch 47/50
18/18 [==============================] - 0s 6ms/step - loss: 0.4254 - accuracy: 0.8313 - val_loss: 0.4176 - val_accuracy: 0.8042
Epoch 48/50
18/18 [==============================] - 0s 7ms/step - loss: 0.4185 - accuracy: 0.8366 - val_loss: 0.4167 - val_accuracy: 0.8042
Epoch 49/50
18/18 [==============================] - 0s 6ms/step - loss: 0.4252 - accuracy: 0.8137 - val_loss: 0.4176 - val_accuracy: 0.8112
Epoch 50/50
18/18 [==============================] - 0s 6ms/step - loss: 0.4234 - accuracy: 0.8295 - val_loss: 0.4199 - val_accuracy: 0.8112

Model Accuracy and Loss with Epochs¶

In [169]:
#Plotting Train Loss vs Validation Loss
plt.plot(history_grid.history['loss'])
plt.plot(history_grid.history['val_loss'])
plt.title('model loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend(['train', 'validation'], loc='upper left')
plt.show()
In [170]:
#Plotting Epoch vs accuracy
plt.plot(history_grid.history['accuracy'])
plt.plot(history_grid.history['val_accuracy'])
plt.title('Accuracy vs Epochs')
plt.ylabel('Accuracy')
plt.xlabel('Epoch')
plt.legend(['Train', 'Validation'], loc='lower right')
plt.show()

Model Performance on training data¶

In [171]:
# Using the model to make predictions on the training data
y_train_pred = grid_model.predict(x_train_scaled)

#Set the threshold of classification to be 0.5
y_train_pred = (y_train_pred > 0.5)

#Performance of model on training data
metrics_score(y_train,y_train_pred)
23/23 [==============================] - 0s 2ms/step
              precision    recall  f1-score   support

           0       0.83      0.92      0.87       443
           1       0.84      0.68      0.75       269

    accuracy                           0.83       712
   macro avg       0.83      0.80      0.81       712
weighted avg       0.83      0.83      0.83       712

Model Performance with validation data¶

In [172]:
#Making prediction using the model on the validation data to peformance metric.
y_pred=grid_model.predict(x_test_scaled)

#Set the threshold of classification to be 0.5
y_pred = (y_pred > 0.5)

#Performance on validation data
metrics_score(y_test,y_pred)
6/6 [==============================] - 0s 3ms/step
              precision    recall  f1-score   support

           0       0.79      0.92      0.85       106
           1       0.84      0.64      0.73        73

    accuracy                           0.80       179
   macro avg       0.81      0.78      0.79       179
weighted avg       0.81      0.80      0.80       179

ROC-AUC Tuning¶

In [173]:
# predict probabilities
yhatgrid = grid_model.predict(x_test_scaled)

# keep probabilities for the positive outcome only
yhatgrid = yhatgrid[:, 0]

# calculate roc curves
fpr, tpr, thresholdsgrid = roc_curve(y_test, yhatgrid)

# calculate the g-mean for each threshold
gmeansgrid = np.sqrt(tpr * (1-fpr))

# locate the index of the largest g-mean
ix = np.argmax(gmeansgrid)
print('Best Threshold=%f, G-Mean=%.3f' % (thresholdsgrid[ix], gmeansgrid[ix]))

# plot the roc curve for the model
pyplot.plot([0,1], [0,1], linestyle='--', label='No Skill')
pyplot.plot(fpr, tpr, marker='.')
pyplot.scatter(fpr[ix], tpr[ix], marker='o', color='black', label='Best')

# axis labels
pyplot.xlabel('False Positive Rate')
pyplot.ylabel('True Positive Rate')
pyplot.legend()

# show the plot
pyplot.show()
6/6 [==============================] - 0s 2ms/step
Best Threshold=0.461143, G-Mean=0.799
In [174]:
#Making the prediction using the test data
y_pred_grid=grid_model.predict(x_test_scaled)

#Using the threshold value to convert the predicted data into true or false statements. If the predicted data is higher than threshold, it will be labelled true.
y_pred_grid = (y_pred_grid > thresholdsgrid[ix])

metrics_score(y_test, y_pred_grid)
6/6 [==============================] - 0s 3ms/step
              precision    recall  f1-score   support

           0       0.81      0.90      0.85       106
           1       0.82      0.70      0.76        73

    accuracy                           0.82       179
   macro avg       0.82      0.80      0.80       179
weighted avg       0.82      0.82      0.81       179

Observations¶

  • Loss curve is smooth, accuracy curve is a little bit rough.
  • Model performance on training data is 83, while performance on validation data is 80. There is still some overfitting going on.
  • After AUC-ROC tuning, model reached an accuracy of 82% on validation data, higher than previous models.

Conclusion¶

Findings from EDA¶

  • Women and children had higher survival rate
  • Pclass 1 passengers had higher survival rate
  • Smaller ticket numbers have higher survival rate
  • Cabin data was too unrepresentative of the population, so the column was dropped.
  • Travelling with small family members have higher chance of survival as compared to solo passengers or passengers with big family.

Findings from Deep Learning Model Tuning¶

  • The version of python, keras and tensorflow can be quite meddlesome, as only specific versions were compatible with each other, or the coding syntax will be different.
  • It took roughly 6 hours to complete the gridsearchCV optimization, and 2 hours to complete the DaskgridsearchCV. According to research, DaskgridsearchCV is more suitable for larger and complex datasets, and will optimize faster.
  • There is a need for a better tuning heuristic to follow, the automated optimizers are unable to include every parameter. It will take too much resources to complete.
  • There are many parameters that can be tuned, each optimizer, layer, regularization technique have their own customizable settings.
  • I could only reach an accuracy of 82% after so much tuning. There must be other ways to improve the accuracy, such as feature engineering, or other kinds of regression models.

Recommendations¶

  • More feature engineering could be done to improve the accuracy:

    • Family Size - Can be broken down into bins of family size i.e. solo, small family and big family. small family got highest chance of surviving, wihle the other 2 have much lower.
    • Ticket Number - People with lower ticket numbers seem to have higher chance of surviving, and there seems to be 3 bigger categories. one is smaller than 200,000, other is from 200,000 to 400,000, then the last group is larger than 3,000,000.
    • Title in names - There were titles assigned to each person in the 'Name' data. This could have given a clue to more factors that could affect the survival rate.
  • The data is small for a deep learning model. This is why the model's performance on the training data is not high in the first place. More data may be created through data augmentation.

  • Cabin data - Although unrepresentative of the population distribution, the available cabin data can be taken out to create another model that would make the prediction for the unseen data that has cabin numbers.

  • Ensemble techniques - We can create different kinds of model and aggregate their predictions.

  • We can try clustering techniques to provide some structure to the data, it might help with the model learning, and we can remove insignificant clusters that might distract the model's learning.

Final Predictions¶

In [ ]:
final_to_predict.head(1)
Out[ ]:
Age Fare family ticket_numbers Pclass_2 Pclass_3 Sex_male Embarked_Q Embarked_S ticket_length_3 ticket_length_4 ticket_length_5 ticket_length_6 ticket_length_7 PassengerId predictions
0 0.408718 -0.502509 -0.553443 0.132042 -0.534933 0.957826 0.755929 2.843757 -1.350676 -0.120678 -0.486504 -0.675608 1.133205 -0.199502 892 0
In [ ]:
x_test_scaled.head(1)
Out[ ]:
Age Fare family ticket_numbers Pclass_2 Pclass_3 Sex_male Embarked_Q Embarked_S ticket_length_3 ticket_length_4 ticket_length_5 ticket_length_6 ticket_length_7
0 1.360125 -0.139232 -0.575156 -0.430966 -0.516627 -1.094318 -1.363612 -0.31427 0.618485 -0.092188 -0.468165 1.622545 -0.977775 -0.213357
In [ ]:
#Make prediction using model 4, and drop ID column as it is not needed forthe prediction
final_to_predict = test_x_scaled
final_to_predict['predictions']= grid_model.predict(final_to_predict.drop('PassengerId',axis=1))

# Apply the ROC-AUC best threshold for model's prediction
final_to_predict['predictions'] = final_to_predict['predictions'].apply(lambda x: 1 if x>thresholdsgrid[ix] else 0)

#Save the predicted data into the csv file
final_to_predict[['PassengerId','predictions']].to_csv("titanic_predictions.csv",index=False)
14/14 [==============================] - 0s 3ms/step